我在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
}
}
任何人都可以帮助我
答案 0 :(得分:1)
在您的onDraw
方法中,您可能需要检查height
的布局width
和canvas
,并相应地调整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(我保持不变)调整到一个新的位置。