• 【安卓特效】怎样给ImageView加上遮罩,点击时泛黑、或泛白、?


    基本思路:

    方法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();
    		}
    	}





  • 相关阅读:
    魔塔猎人上线后反馈和后期计划
    自己做的roguelike+恶魔城游戏《魔塔猎人》已发布。
    我的开源项目
    Unity3D工程源码目录
    小二助手(react应用框架)-http访问
    小二助手(react应用框架)-概述
    unity3d开发app的框架
    为小团队协作和个人任务管理而生的Team应用
    使用unity3d开发app
    好久未登陆
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5071897.html
Copyright © 2020-2023  润新知