我的背景图像被画得太大了

时间:2011-03-05 18:14:14

标签: java android image layout drawing

我正在尝试为我的应用程序绘制的背景似乎因某种原因而变得过大。我确保模拟器是WVGA800,它在清单和布局中设置为全屏和横向(就像800 x 480的图像)。我只是看不到它会缩放图像的位置。

这是问题的图片。放入模拟器时的图像,然后是实际图像。

http://i.stack.imgur.com/iRIFk.jpg

以下是一些相关代码:

/* 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>

2 个答案:

答案 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/吗?