在android开发过程中如何编码实现背景渐变
Main.java文件
package com.example.start;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.style.BackgroundColorSpan;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
public class Main extends Activity {
// 声明ImageView对象
ImageView imageView;
//初始化 ImageView的alpha值
int image_alpha = 255;
// Handler对象用来给UI_Thread的MessageQueue发送消息
Handler mHandler;
// 线程是否运行判断变量
boolean isrung = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
isrung = true;
// 获得ImageView的对象
imageView = (ImageView) this.findViewById(R.id.ImageView01);
// 设置imageView的Alpha值
imageView.setAlpha(image_alpha);
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.style.BackgroundColorSpan;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
public class Main extends Activity {
// 声明ImageView对象
ImageView imageView;
//初始化 ImageView的alpha值
int image_alpha = 255;
// Handler对象用来给UI_Thread的MessageQueue发送消息
Handler mHandler;
// 线程是否运行判断变量
boolean isrung = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
isrung = true;
// 获得ImageView的对象
imageView = (ImageView) this.findViewById(R.id.ImageView01);
// 设置imageView的Alpha值
imageView.setAlpha(image_alpha);
//使imageView充满屏幕
imageView.setAdjustViewBounds(true);
// 开启一个线程来让Alpha值递减
new Thread(new Runnable() {
@Override
public void run() {
try {
imageView.setAdjustViewBounds(true);
// 开启一个线程来让Alpha值递减
new Thread(new Runnable() {
@Override
public void run() {
try {
//让背景效果停留2秒钟
Thread.sleep(2000);
// 更新Alpha值
new Thread(new Runnable() {
@Override
public void run() {
while (isrung) {
try { //设置线程休眠时间
Thread.sleep(100);
// 更新Alpha值,调用 updateAlpha()函数
updateAlpha();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
// 接受消息之后更新imageview视图
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
imageView.setAlpha(image_alpha);
imageView.invalidate();
}
};
}
// 更新Alpha
public void updateAlpha() {
Thread.sleep(2000);
// 更新Alpha值
new Thread(new Runnable() {
@Override
public void run() {
while (isrung) {
try { //设置线程休眠时间
Thread.sleep(100);
// 更新Alpha值,调用 updateAlpha()函数
updateAlpha();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
// 接受消息之后更新imageview视图
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
imageView.setAlpha(image_alpha);
imageView.invalidate();
}
};
}
// 更新Alpha
public void updateAlpha() {
//判断alpha的值是否为0
if (image_alpha - 12 >= 0) {
image_alpha -= 12;
} else {
image_alpha = 0;
isrung = false;
}
// 发送需要更新imageview视图的消息-->这里是发给主线程
mHandler.sendMessage(mHandler.obtainMessage());
}
}
if (image_alpha - 12 >= 0) {
image_alpha -= 12;
} else {
image_alpha = 0;
isrung = false;
}
// 发送需要更新imageview视图的消息-->这里是发给主线程
mHandler.sendMessage(mHandler.obtainMessage());
}
}
main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns: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"
android:maxHeight="1000dp"
android:maxWidth="1000dp"
android:src="@drawable/tu1"
/>
</LinearLayout>
<LinearLayout xmlns: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"
android:maxHeight="1000dp"
android:maxWidth="1000dp"
android:src="@drawable/tu1"
/>
</LinearLayout>