Android.Hack.02_Animations

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

#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);

 

  

  

目录
相关文章
|
XML Android开发 数据格式
我的Android进阶之旅------&gt;Android之Animations动画详解
一、动画类型 Android的animation由四种类型组成:alpha、scale、translate、rotate XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate ...
901 0
|
16天前
|
Java 数据库 Android开发
【专栏】Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理
【4月更文挑战第27天】本文探讨了Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理。通过案例分析展示了网络请求、图像处理和数据库操作的优化实践。同时,文章指出并发编程的挑战,如性能评估、调试及兼容性问题,并强调了多线程优化对提升应用性能的重要性。开发者应持续学习和探索新的优化策略,以适应移动应用市场的竞争需求。
|
20天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
16 1
|
10天前
|
存储 安全 Android开发
安卓应用开发:构建一个高效的用户登录系统
【5月更文挑战第3天】在移动应用开发中,用户登录系统的设计与实现是至关重要的一环。对于安卓平台而言,一个高效、安全且用户体验友好的登录系统能够显著提升应用的用户留存率和市场竞争力。本文将探讨在安卓平台上实现用户登录系统的最佳实践,包括对最新身份验证技术的应用、安全性考量以及性能优化策略。
|
13天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
|
14天前
|
监控 Java Android开发
安卓应用开发:打造高效用户界面的五大策略
【4月更文挑战第29天】 在安卓应用开发的世界中,构建一个既美观又高效的用户界面(UI)对于吸引和保留用户至关重要。本文将深入探讨五种策略,这些策略可以帮助开发者优化安卓应用的UI性能。我们将从布局优化讲起,逐步过渡到绘制优化、内存管理、异步处理以及最终的用户交互细节调整。通过这些实践技巧,你将能够为用户提供流畅而直观的体验,确保你的应用在竞争激烈的市场中脱颖而出。
|
3天前
|
Java Android开发
Android开发--Intent-filter属性详解
Android开发--Intent-filter属性详解
|
3天前
|
物联网 Java 开发工具
安卓应用开发:打造未来移动生活
【5月更文挑战第10天】 随着科技的飞速发展,智能手机已成为我们日常生活中不可或缺的一部分。作为智能手机市场的两大巨头,安卓和iOS分别占据了一定的市场份额。在这篇文章中,我们将重点关注安卓应用开发,探讨如何利用先进的技术和创新思维,为用户打造更加便捷、智能的移动生活。文章将涵盖安卓应用开发的基本概念、关键技术、以及未来发展趋势等方面的内容。
|
4天前
|
Java API 开发工具
java与Android开发入门指南
java与Android开发入门指南
11 0
|
6天前
|
Android开发 Kotlin
Kotlin开发Android之基础问题记录
Kotlin开发Android之基础问题记录
16 1