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>

相关推荐