我正在准备国际象棋游戏,我有动态声明许多ImageViews按钮。 但是,我的朋友说它不支持其他屏幕尺寸,但我听说过DisplayMetrics代码;我们只能通过代码获得屏幕宽度和高度。
我正在为不同的屏幕尺寸使用不同的drawable。我可以像这样在google playstore中发布我的应用程序吗?
答案 0 :(得分:0)
你可以做得更好,但是使用xml文件会导致更少的代码在运行时编写,维护和执行。
所以,我会采用标准方式(xml文件)。
你仍然可以使用编程方式,但是你必须弄乱getWidth,getHeight并乘以密度比例因子,...你必须做一些数学运算!!
答案 1 :(得分:0)
这可以在没有XML的情况下完成,但我会使用画布进行国际象棋。
也许是这样的:
private Paint createChessrBoard(int size)
{
Bitmap bitmap = Bitmap.createBitmap(size* 2, size* 2, Bitmap.Config.ARGB_8888);
Paint fill = new Paint(Paint.ANTI_ALIAS_FLAG);
fill.setStyle(Paint.Style.FILL);
fill.setColor(0x22000000);
Canvas canvas = new Canvas(bitmap);
Rect rect = new Rect(0, 0, size, size);
canvas.drawRect(rect, fill);
rect.offset(size, size);
canvas.drawRect(rect, fill);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setShader(new BitmapShader(bitmap, BitmapShader.TileMode.REPEAT, BitmapShader.TileMode.REPEAT));
return paint;
}
您可以使用它来获取设备DPI
int dpi = getResources().getDisplayMetrics().density;