作成しているライブ壁紙に使用している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);