是否有必要创建单独的.xml文件而不是使用DisplayMetrics?

时间:2013-12-20 17:40:41

标签: android xml

我正在准备国际象棋游戏,我动态声明许多ImageViews按钮。 但是,我的朋友说它不支持其他屏幕尺寸,但我听说过DisplayMetrics代码;我们只能通过代码获得屏幕宽度和高度。

我正在为不同的屏幕尺寸使用不同的drawable。我可以像这样在google playstore中发布我的应用程序吗?

2 个答案:

答案 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;