博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android.Hack.02_Animations
阅读量:5924 次
发布时间:2019-06-19

本文共 3225 字,大约阅读时间需要 10 分钟。

#01# TextView 和 ImageView

  TextView和Imageview切换卡顿,为了实现更好的切换,可以用动画来实现,系统自带的TextViewSwitcher 和ImageViewSwitcher,其中设置自定义动画,可以使用如下Demo:

  

private TextSwitcher mTextSwitcher; @Overridepublic void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.main);  Animation in = AnimationUtils.loadAnimation(this,  android.R.anim.fade_in);  Animation out = AnimationUtils.loadAnimation(this,  android.R.anim.fade_out);  mTextSwitcher = (TextSwitcher) findViewById(R.id.your_textview);  mTextSwitcher.setFactory(new ViewFactory() {
@Overridepublic View makeView() {TextView t = new TextView(YourActivity.this);t.setGravity(Gravity.CENTER); //21 Adding eye candy to your ViewGroup’s children return t;}});mTextSwitcher.setInAnimation(in);mTextSwitcher.setOutAnimation(out);}

参考链接:http://developer.android.com/reference/android/widget/TextSwitcher.html

     http://developer.android.com/guide/topics/graphics/view-animation.html

#02# 为viewgroup的children添加动画-----LayoutAnimationController

  例子是最好的诠释:

    mListView = (ListView) findViewById(R.id.my_listview_id);

           AnimationSet set = new AnimationSet(true);

           Animation animation = new AlphaAnimation(0.0f, 1.0f);
          animation.setDuration(50);
          set.addAnimation(animation);
         animation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,
         Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
         - 1.0f, Animation.RELATIVE_TO_SELF, 0.0f);
         animation.setDuration(100);
         set.addAnimation(animation);
          LayoutAnimationController controller = new LayoutAnimationController(
         set, 0.5f);
Create LayoutAnimationController
and delay between animations. mListView.setLayoutAnimation(controller);

参考链接:http://developer.android.com/reference/android/view/animation/LayoutAnimationController.html

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#03# 

    Nine Old Androids 亦可以实现,图片的缩放的效果,跟官方API里面的图片效果一样。即是::Ken Burns特效,

  比较详细的Demo,已经有人翻译过了:

  :http://blog.csdn.net/manoel/article/details/39164225

一个实现Ken Burns effect图片展示效果的效果android控件。Ken Burns effect是一种图片在切换之前,会缓慢在页面移动或者放大缩小,然后再慢慢切换过去。这样的效果使得每一张静止图片都有动态的效果感觉。类似的效果在,或者在电影视频对静态图片的处理中经常可见。

项目地址

用法:

最简单的用法是直接将项目中提供的jar文件放入,然后在xml中添加:

1
2
3
4
5
<com.flaviofaria.kenburnsview.KenBurnsView
    
<span id=
"1_nwp"
style=
"width: auto; height: auto; float: none;"
><a id=
"1_nwl"
href=
""
target=
"_blank"
mpid=
"1"
style=
"text-decoration: none;"
><span style=
"color:#0000ff;font-size:14px;width:auto;height:auto;float:none;"
>android</span></a></span>:id=
"@+id/image"
    
android:layout_width=
"match_parent"
    
android:layout_height=
"match_parent"
    
android:src=
"@drawable/your_drawable"
/>

高级用法:

1.设置listener:

1
2
3
4
5
6
7
8
9
KenBurnsView kbv = (KenBurnsView) findViewById(R.id.image);
kbv.setTransitionListener(
new
TransitionListener() {
    
@Override
    
public void onTransitionStart(Transition transition) {
    
}
    
@Override
    
public void onTransitionEnd(Transition transition) {
    
}
});

2.你可以用kbv.pause() 和 kbv.resume();暂停和恢复动画。

3.你可以设置动画的插值和过度时间:

1
2
RandomTransitionGenerator generator =
new
RandomTransitionGenerator(duration, interpolator);
kbv.setTransitionGenerator(generator);

 

  

  

你可能感兴趣的文章
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
快速排序——Java
查看>>
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
SCRT-SSH传输文件
查看>>
行列式的乘法定理
查看>>
linux下内存释放问题
查看>>
让Java和JavaScript进行交互
查看>>
linux逻辑卷管理
查看>>
LINQ之路12:LINQ Operators之数据转换(Projecting)
查看>>