2011-08-25 2 views
0

캔버스 내용을 안드로이드,캔버스에서 Android의 ImageView 문제가 발생했습니다.

에서 ImageView에 표시하려고하지만 ImageView에 공백이 표시됩니다.

Bitmap imgBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image); 
Canvas canvas = new Canvas(); 
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 

canvas.drawBitmap(imgBitmap, 0, 0, paint); 

paint.setColor(Color.BLACK); 
paint.setAlpha(100); 
canvas.drawRect(0, 0, 100, 100, paint); // transparent black on image 

imgView.draw(canvas); 

무엇이 문제입니까? 무엇을해야합니까?

답변

5

ImageView.draw()을 실제로 제공된 ImageView의 내용을 제공된 캔버스에 넣으면 이미지가 논리적으로 거꾸로 표시됩니다. 대신 Canvas(Bitmap) 생성자를 사용하십시오 (그러면 캔버스가 비트 맵에 그려집니다). ImageView.setImageBitmap() 캔버스에 동일한 비트 맵을 사용하십시오. Bitmap.createBitmap(int, int, Bitmap.Config)을 사용하여 원하는 비트 맵의 ​​크기를 만들 수 있습니다. 캔버스를 클리핑 된 비트 맵 바운드 바깥에 그려야합니다.

+2

답변 해 주셔서 감사합니다. 'Bitmap bitmap = Bitmap.createBitmap (width, height, Bimap.Config.ARGB_8888); 캔버스 캔버스 = 새로운 캔버스 (비트 맵); ... imgView.setImageBitmap (비트 맵); – musa

관련 문제