1

作成しているライブ壁紙に使用している480x800のビットマップがあります。エミュレーターでテストすると、ビットマップの幅と高さが正常にスケーリングされますが、Samsung 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);
4

1 に答える 1

1

私はあなたがMath.max()代わりに欲しいと思いますMath.min()

于 2013-02-19T01:17:54.757 に答える