android - 使用图像调整位图大小,将其用作背景

标签 android image bitmap resize resolution

我正在尝试为 Android 制作游戏。

现在我必须将图像放入位图中并调整其大小以适应设备的宽度和高度。

当我尝试制作时,我看到一张图片,图片比屏幕大。我希望位图适合屏幕。

感谢您的帮助。

这是我的部分代码:

类 GameView

bmp = BitmapFactory.decodeResource(getResources(), R.drawable.foto);
background = new BackGround(this,bmp);

类(class)背景

public class BackGround {

       private Bitmap bmp;
       private int width;
       private int height;

       public BackGround(GameView gameView, Bitmap bmp) {
             this.bmp = bmp;
             this.width = bmp.getWidth();
             this.height = bmp.getHeight();
       }
         public void onDraw(Canvas canvas) {

             Rect src = new Rect(0, 0, width, height);
             Rect dst = new Rect(0, 0, width, height);
             canvas.drawBitmap(bmp, src, dst, null);
       }
}

最佳答案

我刚刚在我的 onDraw 中添加了这段代码,以根据屏幕动态调整大小(以处理纵向和横向模式)。

final int canvasWidth = getWidth();
final int canvasHeight = getHeight();

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

float scaleFactor = Math.min( (float)canvasWidth / imageWidth, 
                              (float)canvasHeight / imageHeight );
Bitmap scaled = Bitmap.createScaledBitmap(  originalImage, 
                                            (int)(scaleFactor * imageWidth), 
                                            (int)(scaleFactor * imageHeight), 
                                            true );

关于android - 使用图像调整位图大小,将其用作背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404539/

相关文章:

Android:防止 Activity 被多次实例化

android - onCallStateChanged() 给出了错误的 CALL_STATE

java - 我的通知未检索待处理 Intent 中的额外内容

html - 如何使用 Bootstrap 使图像出现在台式机和平板电脑上,而不是手机上?

android - 将可绘制资源转换为位图 Android

android - 获取android中imageview的内容

android - 将图像加载到 Bitmap 对象时出现奇怪的 OutOfMemory 问题

javascript - 从 Canvas 元素制作图像

css - 是否可以从 css 调用 servlet?

android - 在 NDK 中处理 RGB_565 位图