当前位置: 首页 > news >正文

Android.Hack.02_Animations

#01# TextView 和 ImageView

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

  

private TextSwitcher mTextSwitcher;
@Override
public 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() {
@Override
public 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# Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果

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

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

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

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

项目地址https://github.com/flavioarfaria/KenBurnsView

用法:

最简单的用法是直接将项目中提供的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= "http://cpro.baidu.com/cpro/ui/uijs.php?rs=1&u=http%3A%2F%2Fwww%2Ejcodecraeer%2Ecom%2Fa%2Fanzhuokaifa%2Fandroidkaifa%2F2014%2F0920%2F1698%2Ehtml&p=baidu&c=news&n=10&t=tpclicked3_hc&q=01072140_cpr&k=android&k0=android&kdi0=8&k1=%B6%AF%BB%AD&kdi1=8&k2=%B5%E7%D7%D3%CF%E0%B2%E1&kdi2=8&sid=861a9a46d40c70b6&ch=0&tu=u1921070&jk=015869c8e072c03f&cf=29&rb=0&fv=16&stid=9&urlid=0&luki=1&seller_id=1&di=128" 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);

 

  

  

相关文章:

  • [转]Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
  • PowerManager Android 电源管理
  • ZeroMQ接口函数之 :zmq_strerror - 获取ZMQ错误描述字符串
  • 世界国家省份城市县区街道村地址邮编常用通用功能最全API - 多级联动 - 淘宝天猫阿里巴巴技术赏析...
  • ×××S 2012 Report Items -- 独立报表单元
  • 基于Netty与RabbitMQ的消息服务
  • 32_使用BeanUtils工具包操作JavaBean
  • 常用HTTP状态码
  • 怎样将U盘设置成只读属性
  • Sum、if、mod隔列求和
  • 有关android 应用的plugin框架调研
  • 数据结构之查找(php代码实现)
  • redis常用命令
  • (太强大了) - Linux 性能监控、测试、优化工具
  • Centos 源代码以及编译过程
  • __proto__ 和 prototype的关系
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • go语言学习初探(一)
  • java第三方包学习之lombok
  • Java方法详解
  • Just for fun——迅速写完快速排序
  • leetcode讲解--894. All Possible Full Binary Trees
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 测试开发系类之接口自动化测试
  • 每天10道Java面试题,跟我走,offer有!
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 我建了一个叫Hello World的项目
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 1.Ext JS 建立web开发工程
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • Nginx实现动静分离
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (arch)linux 转换文件编码格式
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (备忘)Java Map 遍历
  • (附源码)计算机毕业设计高校学生选课系统
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (转)视频码率,帧率和分辨率的联系与区别
  • .Net 4.0并行库实用性演练
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net程序集学习心得
  • @ConditionalOnProperty注解使用说明
  • @Mapper作用
  • [Android Pro] Notification的使用
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [BZOJ3757] 苹果树
  • [C#7] 1.Tuples(元组)
  • [ffmpeg] 定制滤波器
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
  • [HTML]Web前端开发技术18(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用——喵喵画网页
  • [iOS]把16进制(#871f78)颜色转换UIColor