2012-04-02 4 views
1

У меня есть растровое изображение:Размер растровых изображений в андроида

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); 
    } 
} 

Как я могу изменить размер этого растрового изображения и AFER, что ничьи в моей деятельности?

ответ

2
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

Дайте ширину и высоту и вызвать функцию

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; 
} 

Другие ссылки One & Two

Смежные вопросы