비트 맵을 캔버스를 사용하여 그리는 방법을 알아낼 수 없으므로 결과가 장치 밀도에 영향을받지 않습니다. 나는 Bitmap result
에서 big_picture을로드하고 난 그것에하지만, 지정한 위치에 small_picture을 그리려는비트 맵 + 캔버스 밀도 종속성
ImageView iv = (ImageView)findViewById(R.id.container);
Bitmap result = BitmapFactory.decodeResource(getResources(), R.drawable.big_picture).copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(result);
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.small_picture), actualX, actualY, null);
iv.setImageBitmap(result);
:
다음은 도면을 만드는 코드입니다. 내가 실제 X를 설정하고 실제로 동일한 밀도를 갖는 장치에서는 ok입니다. 그러나 밀도가 다른 장치는 캔버스를 "확장"합니다.재미있는 부분은 small_picture 만 "크기 조정"되어 화면 밖으로 나 오지만 그 뒤에있는 pig_picture는 모든 농도 화면에서 화면에 잘 맞습니다. 왜 그럴까요? 어떻게하면 big_picture densitiy에 small_picture를 독립적으로 그릴 수 있습니까? 감사합니다.
다른 옵션은 inScaled = false를 사용하여 BitmapFactory.Options 객체를 전달하는 것입니다. http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html –