我有一个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);
答案 0 :(得分:1)
我认为您需要Math.max()
而不是Math.min()