首页 > 代码库 > Android资源之图像资源(状态图像资源)

Android资源之图像资源(状态图像资源)

在上一篇博文中,我主要讲解了XML图像资源中的图层资源,在此图像资源博文中我会给大家陆续讲解XMl图像资源的图像状态资源、图像级别资源、淡入淡出资源、嵌入图像资源、剪切图像资源和外形资源。

1.图像状态资源:

  Android SDK提供的Button控件默认样式显得有些单调,而且这种样式与炫丽的界面搭配在一起极不协调。当然,我们可以使用ImageView或ImgaeButton控件配合不同状态的图像做出很酷的按钮,这里我给出用java代码实现按钮按下与正常状态的特效:
btn.setOnTouchListener(new View.OnTouchListener(){            
		    public boolean onTouch(View v, MotionEvent event) {               
		            if(event.getAction() == MotionEvent.ACTION_DOWN){       
		               //重新设置按下时的背景图片  
		               ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.send_down));                              
		            }else if(event.getAction() == MotionEvent.ACTION_UP){       
		                //再修改为抬起时的正常图片  
		                ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.send));     
		            }  
		            return false;       
		    }       
		});  

上面的代码是用来实现按钮的图片切换效果的。可以看出,为了实现按钮的按下特效,需要编写相当多的java代码。为此,Android提供了一种改变Button默认样式的方法,这种方法不需要编写一行java代码.

  当按钮处于不同状态(正常、按下、获得焦点等)时会显示不同的样式,这些样式一般使用不同的图像来渲染,这就需要指定与不同状态对应的图像,而图像状态资源就是用来指定这些图像的。

  图像状态资源是XML格式的文件,必须以<selector>标签作为根节点。在<selector>标签中包含了若干个<item>标签,用来指定相应的图像资源。下面来具体看一个实例:

该文件名为button.xml,实在相应的Drawable目录里的

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 按下状态 属性state_pressed的值为true时,表示当按钮按下时使用此item对应的图片来作为按钮的背景图-->
    <item android:state_pressed="true" android:drawable="@drawable/pressed"/>
    <!-- 获得焦点  state_focused的属性的意义与state_pressed相似-->
    <item android:state_focused="true" android:drawable="@drawable/focused"/>
    <!-- 默认状态 -->
    <item android:drawable="@drawable/normal"/>

</selector>

效果就如同下图所示:

在以后的日子里,我会尽可能的多抽时间来写更多更优秀的博文。

转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/31341353