Размер растровых изображений в Android - PullRequest
1 голос
/ 02 апреля 2012

У меня есть растровое изображение:

    private Bitmap bitmap;

    public newStar(Context context) {
        super(context);

    }

    @Override
    protected void onDraw(Canvas canvas) {
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.star_bez_nog);
        canvas.drawBitmap(bitmap, 100, 100, null);
    }
}

Как мне изменить размер этого растрового изображения и сделать его более привлекательным?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012
Use the below code::
Bitmap b = returnBitmap(mIcon_val,150,150);////where mIcon_val is bitmap to resize  


private Bitmap  returnBitmap(Bitmap mIcon_val,int width,int height){
Matrix matrix = new Matrix();   
if(width==0)
width = mIcon_val.getWidth();
if(height==0)
height = mIcon_val.getHeight();
matrix.postScale((float)width/mIcon_val.getWidth(), (float)height/mIcon_val.getHeight()); 
Bitmap resizedBitmap = Bitmap.createBitmap(mIcon_val, 0, 0, mIcon_val.getWidth(),  mIcon_val.getHeight(), matrix, true);
return resizedBitmap
}
0 голосов
/ 02 апреля 2012

Введите ширину и высоту и вызовите функцию

Bitmap bm = ReduceSizeBitmap(imagefile, 150, 150);

Теперь вызовите следующую функцию

Bitmap ReduceSizeBitmap(String file, int width, int height){

 BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
    bmpFactoryOptions.inJustDecodeBounds = true;
    Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);

    int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height);
    int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width);

    if (heightRatio > 1 || widthRatio > 1)
    {
     if (heightRatio > widthRatio)
     {
      bmpFactoryOptions.inSampleSize = heightRatio;
     } else {
      bmpFactoryOptions.inSampleSize = widthRatio; 
     }
    }

    bmpFactoryOptions.inJustDecodeBounds = false;
    bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
 return bitmap;
}

Другие ссылки Один & Два

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...