图像处理详解之图像透明度

Android支持的颜色系统是RGB,Alpha最后的Alpha表示透明度,他的取值是0-255,。通过设置Alpha的值,我们可以改变图像的透明度。

下面举例说明,效果图如下:



public class MainActivity extends Activity implements OnSeekBarChangeListener{
	
	public static int alpha=100;
	private View myView;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout linearLayout=new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        myView=new MyView(this);
        myView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 260));
        
        SeekBar seekBar=new SeekBar(this);
        seekBar.setMax(255);
        //seekbar的初始值
        seekBar.setProgress(alpha);
        seekBar.setOnSeekBarChangeListener(this);
        linearLayout.addView(myView);
        linearLayout.addView(seekBar);
        linearLayout.setBackgroundColor(color.white);
        setContentView(linearLayout);
        setTitle("Alpha"+alpha);
    }

	public void onProgressChanged(SeekBar seekBar, int progress,
			boolean fromUser) {
		// TODO Auto-generated method stub
		alpha=progress;
		setTitle("Alpha:"+alpha);
		myView.invalidate();
	}
	
	private class MyView extends View{

		private Bitmap bitmap;
		public MyView(Context context) {
			super(context);
			// TODO Auto-generated constructor stub
			InputStream is=getResources().openRawResource(R.drawable.ic_launcher);
			bitmap=BitmapFactory.decodeStream(is);
			setBackgroundColor(color.white);
		}
		@Override
		protected void onDraw(Canvas canvas) {
			// TODO Auto-generated method stub
			Paint paint=new Paint();
			paint.setAlpha(alpha);
			//第二个参数表示源位图的复制区域,第三个参数表示绘制的目标区域
			canvas.drawBitmap(bitmap, new Rect(0,0,bitmap.getWidth(),bitmap.getHeight()),new Rect(10,10,310,235), paint);
		}
		
	}

	public void onStartTrackingTouch(SeekBar seekBar) {
		// TODO Auto-generated method stub
		
	}

	public void onStopTrackingTouch(SeekBar seekBar) {
		// TODO Auto-generated method stub
		
	}
}



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值