`
byandby
  • 浏览: 1688448 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 设置Alpha值实现图片渐变效果

阅读更多
    我们要将一个张图片显示在屏幕上,首先需要创建一个显示图片的对象,在Android中,这个对象是ImageView对象,然后通过setImageResources 方法来设置要显示的图片资源索引。当然,还可以对图片执行一些其它的操作,比如设置它的Alpha值等。这里通过一个示例来给大家演示,我们另起一个线程来改变图片的Alpha值。如果大家对线程的交互不熟悉 那推荐大家看这篇文章了 写的很全面了。http://byandby.iteye.com/blog/825071 。我们先看看运行效果吧。





  Activity01类
package xiaohang.zhimeng;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;
import android.widget.TextView;

public class Activity01 extends Activity {
	// 声明ImageView对象
	ImageView imageView;
	// 声明TextView
	TextView textView;
	// 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);
		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值递减
		new Thread(new Runnable() {
			@Override
			public void run() {
				while (isrung) {
					try {
						Thread.sleep(200);
						// 更新Alpha值
						updateAlpha();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		}).start();
		// 接受消息之后更新imageview视图
		mHandler = new Handler() {
			@Override
			public void handleMessage(Message msg) {
				super.handleMessage(msg);
				imageView.setAlpha(image_alpha);
				// 设置textview显示当前的Alpha值
				textView.setText("现在的alpha值是:" + Integer.toString(image_alpha));
				// 刷新视图
				imageView.invalidate();
			}
		};
	}

	// 更新Alpha
	public void updateAlpha() {
		if (image_alpha - 7 >= 0) {
			image_alpha -= 7;
		} 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"
/>
<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>
 
  源码大家可以在附件下载。
 
  • 大小: 32.1 KB
  • 大小: 32.2 KB
  • 大小: 27.8 KB
分享到:
评论
1 楼 zhaoyu_h 2011-04-07  
不错的,加油啊。。。好好学习你的啊。。。

相关推荐

    Android动画效果--渐变动画

    Android动画效果--渐变动画,包括Alpha渐变、scale渐变、translate渐变、rotate渐变。并有两种实现动画方式:Java Code实现和XML实现。

    Android应用中设置alpha值来制作透明与渐变效果的实例

    主要介绍了Android应用中设置alpha值来制作透明与渐变效果的实例,展示了基础的透明渐变动画的编写方法,需要的朋友可以参考下

    Android 安卓生成4种图片动画效果.rar

    Android 安卓生成4种图片动画效果,可用于画廊、画册、图库壁纸、相框应用中,这几种渐变分别是图片渐变(淡入淡出)Alpha透明度变化、图片拉伸由大到小Scale、图片移位Translate、图片旋转Rotate如演示截图所示,...

    android 动画之基础动画 alpha(渐变) scale(缩放) translate(移动) rotate(旋转)

    android 动画之基础动画 alpha(渐变) scale(缩放) translate(移动) rotate(旋转)

    Android编程实现设置按钮背景透明与半透明及图片背景透明的方法

    本文实例讲述了Android编程实现设置按钮背景透明与半透明及图片背景透明的方法。分享给大家供大家参考,具体如下: Button或者ImageButton的背景设为透明或者半透明: 半透明 代码如下:&lt;Button android:...

    Android实现直播聊天区域中顶部的渐变效果

    在4月份开发直播时,有一个需求,需要实现一个RecylerView顶部渐变的效果 实际效果 解决思路 图层重叠处理(本质是alpha叠加出来的效果) 实现流程 保存一个图层,然后画渐变,最后再和原来的图层进行合并,达到这...

    Android xml形式实现Tween动画

    这是一个通过android xml的形式实现Tween动画的四种形式,包括:alpha渐变动画、rotate旋转动画、translate位移动画、scale缩放动画。另外还有一个集合动画。

    Android旋转、平移、缩放和透明度渐变的补间动画

    android实现旋转、平移、缩放和透明度渐变的补间动画,具体实现如下: 1.在新建项目的res目录中,创建一个名为anim的目录,并在该目录中创建实现旋转、平移、缩放和透明度渐变的动画资源文件。 透明度渐变的动画资源...

    android动画基础

    XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画...

    详谈Android动画效果translate、scale、alpha、rotate

    渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画...

    Android动画例子(AnimationExample)

    Android动画例子(Animation...alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 文章:http://www.cnblogs.com/markdev/articles/2658830.html

    Android实现动画效果详解

    一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。 实现动画有两种方式:一种使用XML...

    Android xml实现animation的4种动画效果实例代码

    animation有四种动画类型:分别为alpha(透明的渐变)、rotate(旋转)、scale(尺寸伸缩)、translate(移动),二实现的分发有两种,一种是javaCode,另外一种是XML,而我今天要说的是XML实现的方法,个人感觉javaCode的...

    android 动画基础

    动画效果编程基础--AnimationAndroid 动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移...

    Android代码-MultiWaveHeader

    支持设置颜色渐变和改变渐变方向. 演示 Download APK-Demo 每天领红包 最近开通了支付宝商家,生成了个红包二维码,经常用支付宝的童鞋可有扫码领优惠红包,扫码只会拿红包,不会有任何损失,每天都可以扫码哦! ...

    Android自定义View绘图实现渐隐动画

    用属性动画或者渐变填充(Shader)可以做到一笔一笔的变化,但要想一笔渐变(手指不抬起边画边渐隐),没在Android中找到现成的API可用。所以,自己做了一个。 基本的想法是这样的: •在View的onTouchEvent中记录...

    Android开启动画之渐隐渐现效果

    alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 最简单的莫过于渐变透明效果,单单这一种就可完成渐隐渐现的动画效果(用于渐现渐...

Global site tag (gtag.js) - Google Analytics