【发布时间】:2013-09-24 22:51:28
【问题描述】:
我的问题很简单,但是我没有找到解决方案;我希望位图根据屏幕尺寸重新缩放。
问题图片:
下面是代码,我不确定要包含多少,因为我真的不知道为什么会发生这种情况。
public TitleView(Context context) {
super(context);
myContext = context;
titleGraphicFixed = BitmapFactory.decodeResource(getResources(),
R.drawable.title_background);
playButtonUpFixed = BitmapFactory.decodeResource(getResources(),
R.drawable.button_play_up);
playButtonDownFixed = BitmapFactory.decodeResource(getResources(),
R.drawable.button_play_down);
}
@Override
public void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
screenW = w;
screenH = h;
drawScaleW = (float) screenW / 800;
drawScaleH = (float) screenH / 600;
Log.d(TAG, "Screen Width: " + drawScaleW);
Log.d(TAG, "Screen Height: " + drawScaleH);
titleGraphic = Bitmap.createScaledBitmap(titleGraphicFixed, screenW,
screenH, true);
playButtonUp = Bitmap.createScaledBitmap(playButtonUpFixed,
(int) (playButtonUpFixed.getWidth() * drawScaleW),
(int) (playButtonUpFixed.getHeight() * drawScaleH), true);
playButtonDown = Bitmap.createScaledBitmap(playButtonDownFixed,
(int) (playButtonDownFixed.getWidth() * drawScaleW),
(int) (playButtonDownFixed.getHeight() * drawScaleH), true);
编辑:
我正在构建“Android Game Programming For Dummies”一书中的一个示例,因为这是我为 android 编写的第一个应用程序/游戏。对于他的游戏标题/菜单页面,作者没有使用 XML 布局。
这是我目前使用的代码的链接:
第二次编辑:
以下是从日志中获得的详细信息,以下文字的布局使得左边是上图设备中较小的,右边是较大的。
屏幕宽:320、800 屏幕H:240、480
比例 W:0.4、1.0 比例 H:0.4、0.8
(到目前为止,所有的数学加起来/都是正确的,但是这里是不是疯了
按钮图片的实际按钮尺寸:W220、H67
计算的按钮大小: 宽:66、330 高:20、80
显然这是错误的,例如小屏幕,H67 * 0.4 不等于 20。所以我去看看按钮导入后的宽度和高度是多少,发现:
宽:165、330 H: 50, 101
这意味着对于小屏幕,一旦创建了位图(但未重新缩放,它会自动重新缩放实际按钮图像大小的 0.75)。对于更大的屏幕,它在创建时被调整为 1.5。但我无法为我的爱找出原因!
【问题讨论】:
-
这有什么问题?
-
理论上,按钮的大小应该相同(相对于屏幕大小),但事实并非如此。
标签: java android image bitmap scaling