2012-04-21 17 views
2

このプロジェクトでは、画面サイズよりもビットマップが大きくなっています。私は正確に画面に合わせてサイズを変更したい。私はタイトルバーがなく、私はフルスクリーンモードです。これは私の非稼働コードです:Android - ビットマップを画面に合わせる

public class ScopView extends View 
{ 
    private Scop thescop; 

    public ScopView(Context context, Scop newscop) 
    { 
     super(context); 
     this.thescop = newscop; 
    } 

    @Override 
    public void onDraw(Canvas canvas) 
    { 
     Bitmap scopeBitmap; 
     BitmapFactory.Options bfOptions = new BitmapFactory.Options(); 
     bfOptions.inDither = false; 
     bfOptions.inPurgeable = true; 
     bfOptions.inInputShareable = true; 
     bfOptions.inTempStorage = new byte[32 * 1024]; 

     scopeBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.scope, bfOptions); 
     scopeBitmap.createScaledBitmap(scopeBitmap, SniperActivity.Width, SniperActivity.Height, false); 
     canvas.drawBitmap(scopeBitmap, SniperActivity.scopx, SniperActivity.scopy, null); 
    } 
} 

createScaledBitmap方法ここでは、私はソースとしての地位を使用していますし、画面の好みから窓の高さと幅を取得するために使用される活動からのいくつかの変数間。

答えて

11

以下のコードを使用してビットマップのサイズを変更することができます。

int h = 320; // Height in pixels 
int w = 480; // Width in pixels  
Bitmap scaled = Bitmap.createScaledBitmap(largeBitmap, h, w, true); 
1

また、次のコードスニペットを使用できます。

public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) { 
    int width = bm.getWidth(); 
    int height = bm.getHeight(); 
    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 

    // Create a matrix for the manipulation 
    Matrix matrix = new Matrix(); 

    // Resize the bit map 
    matrix.postScale(scaleWidth, scaleHeight); 

    // Recreate the new Bitmap 
    Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false); 

    return resizedBitmap; 
} 
1

このコードは、この

int REQ_WIDTH = 0; 
int REQ_HEIGHT = 0; 
REQ_WIDTH =imageView.getWidth(); 
vREQ_HEIGHT =imageView.getHeight(); 
mImageView.setImageBitmap(Bitmap.createScaledBitmap(BitmapFactory.decodeFile(imageURI, options), REQ_HEIGHT, REQ_WIDTH, true)); 
を試してみてくださいあなたに助けであります
関連する問題