Android просто не будет загружать изображение именно так, как оно есть - PullRequest
0 голосов
/ 18 июня 2020

Например, если у меня есть 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 !!

Оказывается, это свойство плотности играет трюк. Растровое изображение - это растровое изображение, зачем вводить плотность? Это действительно нежелательное поведение, разве только меня это действительно раздражает?

...