Android Alpha值改变 图片也有改变
我们要将一个张图片显示在屏幕上,首先需要创建一个显示图片的对象,在Android中,这个对象是ImageView对象,然后通过setImageResources方法来设置要显示的图片资源索引。当然,还可以对图片执行一些其它的操作,比如设置它的Alpha值等。这里通过一个示例来给大家演示,我们另起一个线程来改变图片的Alpha值。我们先看看运行效果吧。
们现在来看看代码是怎么实现的吧:
Java代码:
packageeoe.Demo;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.widget.ImageView;
importandroid.widget.TextView;
publicclassActivity01extendsActivity{
//声明ImageView对象
ImageViewimageView;
//声明TextView
TextViewtextView;
//ImageView的alpha值
intimage_alpha=255;
//Handler对象用来给UI_Thread的MessageQueue发送消息
HandlermHandler;
//线程是否运行判断变量
booleanisrung=false;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
isrung=true;
//获得ImageView的对象
imageView=(ImageView)this.findViewById(R.id.ImageView01);
textView=(TextView)this.findViewById(R.id.TextView01);
//设置imageView的图片资源。同样可以再xml布局中像下面这样写
//android:src="@drawable/logo"
imageView.setImageResource(R.drawable.logo);
//设置imageView的Alpha值
imageView.setAlpha(image_alpha);
//开启一个线程来让Alpha值递减
newThread(newRunnable(){
@Override
publicvoidrun(){
while(isrung){
try{
Thread.sleep(200);
//更新Alpha值
updateAlpha();
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
}).start();
//接受消息之后更新imageview视图
mHandler=newHandler(){
@Override
publicvoidhandleMessage(Messagemsg){
super.handleMessage(msg);
imageView.setAlpha(image_alpha);
//设置textview显示当前的Alpha值
textView.setText("现在的alpha值是:"+Integer.toString(image_alpha));
//刷新视图
imageView.invalidate();
}
};
}
//更新Alpha
publicvoidupdateAlpha(){
if(image_alpha-7>=0){
image_alpha-=7;
}else{
image_alpha=0;
isrung=false;
}
//发送需要更新imageview视图的消息-->这里是发给主线程
mHandler.sendMessage(mHandler.obtainMessage());
}
}
布局文件main.xml
Java代码:
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/ImageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/TextView01"
android:layout_below="@id/ImageView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>