【安卓特效】怎样给ImageView加上遮罩,点击时泛黑、或泛白、?
2015-12-24 08:30
429 查看
基本思路:
方法1.遮罩可直接叠加一层带alpha的纯白、或纯黑View,可直接在ImageView外套一层FrameLayout,其foreground(一般同学可能仅仅知道background,事实上framelayout还有foreground)给定一个selector(按下时给0x33000000,即泛黑),到位。
方法2.重写imageView,按下状态改变时invalidate(触发onDraw),onDraw中依据按下状态绘制0x33000000。注意imageView.setClickable(true),或imageView.setOnClickListener时才可触发dispatchSetPressed。
方法1.遮罩可直接叠加一层带alpha的纯白、或纯黑View,可直接在ImageView外套一层FrameLayout,其foreground(一般同学可能仅仅知道background,事实上framelayout还有foreground)给定一个selector(按下时给0x33000000,即泛黑),到位。
方法2.重写imageView,按下状态改变时invalidate(触发onDraw),onDraw中依据按下状态绘制0x33000000。注意imageView.setClickable(true),或imageView.setOnClickListener时才可触发dispatchSetPressed。
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 取id // imgTest = (ImageView) findViewById(R.id.imgTest); loMain = (RelativeLayout) findViewById(R.id.loMain); findViewById(R.id.btn1).setOnClickListener(this); findViewById(R.id.btn2).setOnClickListener(this); MyImg myImg = new MyImg(this); myImg.setImageResource(R.drawable.meinv); myImg.setClickable(true); loMain.addView(myImg); } private class MyImg extends ImageView { public MyImg(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); if (isPressed()) canvas.drawColor(0x33000000); } @Override protected void dispatchSetPressed(boolean pressed) { // TODO Auto-generated method stub super.dispatchSetPressed(pressed); invalidate(); } }
相关文章推荐
- intent.setClass(,)时发生错误 NoClassDeFound
- 用php判断时间戳来输出刚刚,分钟前,小时前昨天和时间
- 工作个人总结
- python闭包引用局部变量的方法
- poj 1163 The Triangle之解题报告
- 信息论的编码
- 135,Copy在Property处的应用
- 数组小结
- 北京Uber优步司机奖励政策(12月24日)
- Swift编程语言学习10—— 枚举属性监视器
- SQL查询出当前服务器时间是否在表T1时间段内,如果有则选择出
- 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(12月24日)
- 修改字符编码格式--【Eclipse】
- LeetCode-12-Integer to Roman(哈希)-Medium
- Python补充04 Python简史
- 具体分析contrex-A9的汇编代码__switch_to(进程切换)
- ES6学习——新的语法:数组元素Spread
- Python补充03 Python内置函数清单
- js 基础整理
- XAF应用开发教程(六)控制器