位图未缩放到Android高度

时间:2013-02-19 00:54:32

标签: java android android-canvas

我有一个480 x 800位图,我正用于创建我的动态壁纸。当我在模拟器上测试时,位图的宽度和高度可以很好地缩放,但是当我在三星S3上测试时,位图宽度很好但高度太短,底部显示黑色矩形。是否有我应该使用的标准位图大小或我的代码中有什么问题?:

    public void doDraw(Canvas c) {
    c.drawColor(Color.rgb(0,0,0)); // Clear the background.

    final int canvasWidth = getScreenWidth();
    final int canvasHeight = getScreenHeight();

    int imageWidth = mBitmap.getWidth();
    int imageHeight = mBitmap.getHeight();

    float scaleFactor = Math.min( (float)canvasWidth / imageWidth, 
                                  (float)canvasHeight / imageHeight );
    Bitmap scaled = Bitmap.createScaledBitmap(  mBitmap, 
                                                (int)(scaleFactor * imageWidth), 
                                                (int)(scaleFactor * imageHeight), 
                                                true );
    c.drawBitmap(scaled, 0, 0, null);

1 个答案:

答案 0 :(得分:1)

我认为您需要Math.max()而不是Math.min()