制作包含画布的屏幕兼容性

时间:2012-06-15 05:28:59

标签: android android-canvas

我在android中使用canvas。我想在画布上绘制适合每个屏幕的形状。

 如果屏幕尺寸 320 * 240 那么高度&宽度为 90 * 90 但是如果 screen_size为> 320 * 240 然后应该相应增加。

假设 screen_size = 1280 * 800 那么它应该增加多少

我不知道该为此做什么

代码就像

int fixHeight = 240, fixWidth = 320;
Paint paint;
paint = new Paint();
paint.setColor(Color.GREEN);
DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
@Override
protected void onDraw(Canvas canvas) {
     if (height <= fixHeight && width <= fixWidth) {
          canvas.drawRect(10, 10, 50, 50, paint);  
     } else {
          // Don't Know What TO Put Here
     }
}

任何人都可以帮助我

1 个答案:

答案 0 :(得分:1)

在您的onDraw方法中,您可能需要检查height的布局widthcanvas,并相应地调整draw.height和draw.width。

如果屏幕的尺寸增加,那么你可以使用draw.width和draw.height常数的乘数来绘制之前乘以或除。

编辑:代码发布后。

让我们说320 * 240是你绘制一个高度为40,宽度为40的canvas.drawRect(10, 10, 50, 50, paint);矩形的基本情况。所以左,上,右和底可以用来修改你的情况使用以下公式获得1280 * 800的新分辨率。

320 --> (50 - 10)
1280 --> (x - 10)

所以x = 10 + (50-10)*1280/320

尝试为wdith重复相同的论坛,你应该得到你的基础坐标。我相信你可以根据上面相同的公式将你的10,10(我保持不变)调整到一个新的位置。