先看效果图:

第一步:

在valuses下面自定义目录:

第二步:

自定义ImageView

package com.jiaruihuademo.myattrimageview;

import java.util.Timer;

import java.util.TimerTask;

import com.jiaruihuademo.myattrimageview.R;

import android.content.Context;

import android.content.res.TypedArray;

import android.graphics.Canvas;

import android.os.Handler;

import android.os.Message;

import android.util.AttributeSet;

import android.widget.ImageView;

public class AlphaImageView extends ImageView {

//图像透明度每次改变的大小

private int perAlpha = 0;

//当前图像的透明度

private int curAlpha = 0;

//每隔多长时间改变一次透明度

private int SPEED = 300;

public AlphaImageView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

//找到自定义的属性

TypedArray typedArray = context.obtainStyledAttributes(attrs,

R.styleable.AlphaImageView);

//获取duration参数

int duration = typedArray.getInt(R.styleable.AlphaImageView_duration, 0);

//计算透明度改变的大小

perAlpha = 255*SPEED/duration;

}

Handler handler = new Handler(){

public void handleMessage(Message msg) {

if (msg.what==0x123) {

curAlpha +=perAlpha;

if (curAlpha>255) {

curAlpha=255;

}

AlphaImageView.this.setAlpha(curAlpha);

}

};

};

@Override

protected void onDraw(Canvas canvas) {

this.setAlpha(curAlpha);

super.onDraw(canvas);

final Timer timer = new Timer();

timer.schedule(new TimerTask() {

@Override

public void run() {

// TODO Auto-generated method stub

Message msg = new Message();

msg.what=0x123;

if (curAlpha>255) {

timer.cancel();

}else {

handler.sendMessage(msg);

}

}

}, 0,SPEED);

}

}

第三步:

在layout布局下:

xmlns:jiaruihuademo="http://schemas.android.com/apk/res/com.jiaruihuademo.myattrimageview"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity" >

android:id="@+id/imageView1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_below="@+id/textView1"

android:layout_centerHorizontal="true"

android:src="@drawable/t01397599f43ebc8f8c"

jiaruihuademo:duration="60000"/>

android设置图片 透明度渐变效果,android 自定义属性实现 ImageView 透明度渐变效果...相关推荐

  1. Android点击图片随机,android 设置图片随机出现-两种方式

    android 设置图片随机出现-两种方式, 第一种方式:得到图片对应的Drawable实例,通过setImageDrawable(drawable)实现 //ImageView对应的id ivBg ...

  2. android 设置图片随机出现-两种方式

    android 设置图片随机出现-两种方式, 第一种方式:得到图片对应的Drawable实例,通过setImageDrawable(drawable)实现 //ImageView对应的idivBg = ...

  3. android设置webview缓存目录,Android基础入门教程——7.5.5 WebView缓存问题

    Android基础入门教程--7.5.5 WebView缓存问题 Android基础入门教程 本节引言:现在很多门户类信息网站,比如虎嗅,ifanr,钛媒体等等的APP,简单点说是信息阅读类的APP, ...

  4. android分享图片到qq,Android实现截图分享qq,微信

    Android实现截图分享qq,微信 立即下载 金额: 3 元 支付方式: 友情提醒:源码购买后不支持退换货 立即支付 发布时间:2018-05-23 概述 android上封装工具类,一行实现截屏分 ...

  5. android 矢量图片使用方法,Android中的矢量图

    概述 VectorDrawable是通过XML文件中的一系列点,线和曲线及其相关颜色信息定义的. 使用VectorDrawable的主要优点是图像可扩展性. 它可以缩放而不损耗显示质量,这意味着相同的 ...

  6. android分享图片到qq,Android 如何实现本地图片直接分享到微信、来往、QQ等,直接分享...

    在不使用第三方的SDK情况下,如何在Android上直接分享图片到指定的应用上,例如分享到微信.来往.QQ等.具体实现见贴出的代码.实现后才发现好简单的 例如:要在app中直接分享图片到微信.来往等, ...

  7. android设置背景颜色渐变,Android背景渐变色(shape,gradient)

    Android设置背景色可以通过在res/drawable里定义一个xml,如下: android:startColor="#FFF" android:endColor=" ...

  8. android 自动相机 图片旋转问题,Android部分手机拍照后获取的图片被旋转问题的解决方法...

    调用Android系统拍照功能后,三星手机拍摄后的照片被旋转了90度,横着拍给你变成竖的,竖的拍给你变成横的.其它品牌的手机都是正常的,就三星出现这个怪事. 在Android适配上,我原来一直以为国内 ...

  9. android设置控件形状,Android控件自定义形状

    Android中处理控件的各种形状可以用到Shape,ApiDemos中有相关的例子,在com.example.android.apis.graphics中的ShapeDrawable1类中有很详细的 ...

最新文章

  1. 高效的找出两个List中的不同元素
  2. 【MM】基于收货的发票校验Bapi Demo
  3. J.U.C系列(二)CyclicBarrier的使用
  4. labview如何加载库_迈德威视工业相机LabView 开发指导
  5. 二叉树的创建和遍历-C语言实现
  6. 深入理解Python中的元类(metaclass)
  7. 2003 64位系统 IIS6 32位模式运行
  8. 图解Android 内存分析工具之Mat使用教程
  9. leetcode141. 环形链表
  10. 20172303 2018-2019-1《程序设计与数据结构》第7周学习总结
  11. Java基础语法一 数据类型运算符
  12. 用C++实现定积分运算
  13. 详解AC97和HD声卡前置音频接口的连接跳线
  14. python爬取ajax_Python爬虫如-何爬取ajax网页之爬取雪球网文章
  15. 台式计算机虚拟内存怎么设置,电脑虚拟内存怎么设置最好 电脑虚拟内存不足怎么解决...
  16. Autodesk AutoCAD 2013 简体中文版下载
  17. LINUX中DNS服务器反向解析
  18. 100层楼,2个鸡蛋,最少要几次才能测试出鸡蛋能承受的最大楼层?
  19. php lumen和laravel,Laravel 还是 Lumen?
  20. mysql 横向查询

热门文章

  1. flv格式视频怎么转换成mp4
  2. apache的url重写
  3. 【Win 10 应用开发】在代码中加载文本资源
  4. 企业邮箱签名设置攻略,注册邮箱后一定要做的事
  5. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-(一千零一拾一元整)输出
  6. 关于舆情系统的“准”
  7. 搜索-Query理解(全)
  8. HTMLCSSHTTP
  9. Java系统程序Bug解决方法论(一) - 教程简介
  10. 首批Win 8 Xbox游戏名单公开