Android 淡入淡出效果

今天把图像资源剩余的几个知识梳理一下。淡入淡出资源同图像状态和图像级别资源一样可以切换两个图像(目前只支持两个图像的切换),并且使这两个图像以淡入淡出效果进行切换。如上一篇博文介绍的开关电灯一样,如果加上淡入淡出效果会更好。

下面在res/drawable目录中建立一个cross_fade.xml文件,该文件内容如下:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!-- transition标签中只能有两个item标签 -->  
  3. <transition xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <item android:drawable="@drawable/lamp_off"></item>  
  5.      <item android:drawable="@drawable/lamp_on"></item>  
  6. </transition>  

在main_layout文件中引用该资源文件,代码如下:
[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <ImageView  
  2.     android:id="@+id/imageview_lamp"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="wrap_content"  
  5.     android:src="@drawable/cross_fade"  
  6.     />  
从第一个图像(第一个item'中指定的图像)切换到第2个图像要使用TransitionDrawable.startTransition方法,从第2个图像切换到第1个图像要使用TransitionDrawable.reverseTransition方法,如下代码所示:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. public class MainActivity extends Activity {  
  2.     private ImageView ivLamp;  
  3.   
  4.     @SuppressLint("NewApi")  
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.activity_main);  
  9.         //Resources res=getResources();  
  10.         //Drawable drawable=res.getDrawable(R.drawable.bitmap_test);  
  11.         //TextView txt=(TextView)findViewById(R.id.textView);  
  12.         //txt.setBackground(drawable);  
  13.         ivLamp=(ImageView)findViewById(R.id.imageview_lamp);  
  14.         //设置level为8,显示lamp_off.png  
  15.         //ivLamp.setImageLevel(8);  
  16.           
  17.     }  
  18.   
  19.     //"开灯"按钮的单击事件方法  
  20.     public void onClick_LampOn(View view)  
  21.     {  
  22.         //设置level为15,显示lamp_on.png  
  23.         //ivLamp.setImageLevel(15);  
  24.         TransitionDrawable drawable=(TransitionDrawable)ivLamp.getDrawable();  
  25.         //从第一个图像切换到第2个图像。其中使用1秒(1000毫秒)时间完成淡入淡出效果  
  26.         drawable.startTransition(1000);  
  27.     }  
  28.     //"关灯"按钮的单击事件方法  
  29.         public void onClick_LampOff(View view)  
  30.         {  
  31.             //设置level为6,显示lamp_off.png  
  32.             //ivLamp.setImageLevel(6);  
  33.             TransitionDrawable drawable=(TransitionDrawable)ivLamp.getDrawable();  
  34.             //从第2个图像切换到第1个图像。其中使用1秒(1000毫秒)时间完成淡入淡出效果  
  35.             drawable.reverseTransition(1000);  
  36.         }  
  37.       
  38.   
  39. }  


淡入淡出的效果如下图所示:

 如果显示的图像要求小于装载图像的视图,可以考虑使用嵌入图像资源。嵌入图像资源是XML格式的文件,只有一个<inset>标签。使用如下的4个属性设置图像距离上下左右4个方向的距离。

android:insetTop:图像距离上边的距离。

android:insetRight:图像距离右侧的距离。

android:insetBottom:图像距离底边的距离。

android:insetLeft:图像距离左侧的距离。

这个嵌入图像资源很好理解,故在此就不给出例子了。


附上源码:http://download.csdn.net/detail/cherfz/9373947


原文:http://blog.csdn.net/android_jiangjun/article/details/33360661

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值