Например, если у меня есть png размером 200x200, я запускаю
mBackground=BitmapFactory.decodeResource(getResources(), R.drawable.circle);
, результат будет 400x400. конечно, я могу это сделать;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled=false;
mBackground=BitmapFactory.decodeResource(getResources(), R.drawable.circle,options);
теперь это 200x200, но потом, когда я рисую
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
setLayerType(LAYER_TYPE_SOFTWARE,null);
canvas.drawBitmap(mBackground,0,0,mImagePaint); //density 160
mImagePaint.setXfermode(mSourceOnTopMode);
canvas.drawBitmap(mForground,0,0, mImagePaint); //density 320
mImagePaint.setXfermode(null);
}
он возвращается к 400x400 !!
Оказывается, это свойство плотности играет трюк. Растровое изображение - это растровое изображение, зачем вводить плотность? Это действительно нежелательное поведение, разве только меня это действительно раздражает?