我正在尝试为我的应用程序绘制的背景似乎因某种原因而变得过大。我确保模拟器是WVGA800,它在清单和布局中设置为全屏和横向(就像800 x 480的图像)。我只是看不到它会缩放图像的位置。
这是问题的图片。放入模拟器时的图像,然后是实际图像。
以下是一些相关代码:
/* mBackground instantiated in the class constructor */
mBackground = BitmapFactory.decodeResource( mContext.getResources(), R.drawable.background );
private void doDraw( Canvas canvas )
{
canvas.drawBitmap( mBackground, 0, 0, null );
}
这是布局
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<com.project.game.GameView
android:id="@+id/game"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</RelativeLayout>
</FrameLayout>
答案 0 :(得分:1)
一种可能性是使用视口创建画布
public void onDraw(Canvas canvas) {
Bitmap myImg = BitmapFactory.decodeResource(getResources(),
R.drawable.cal_blank);
canvas.setViewport(800, 480);
canvas.drawBitmap(iconImg, 0, 0, new Paint(););
}
另一种方法是使用此方法http://www.anddev.org/resize_and_rotate_image_-_example-t621.html
缩放图像答案 1 :(得分:1)
只是一个猜测 - 也许这取决于使用什么文件夹类型来放置图像。你能说你把图像放在哪里?我的意思是,它是/res/drawable-hdpi/
还是其他什么?你试过/res/drawable-nodpi/
吗?