Android计算绘图的屏幕大小



我正在尝试在我的应用程序中绘制,所以我希望我的画笔大小为设备屏幕的10%,这意味着对于所有设备来说,它应该是不同的大小。我阅读了android开发者指南这里关于dp。

        getScreenSizeDpi();
        m_brushSize = (int)(area * brush_percentages)/100;
        circle_area = m_brushSize * m_brushSize * Math.PI;
}

方法:

private void getScreenSizeDpi() {
    DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
    float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
    float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
    area = dpHeight * dpWidth;
}

但我只想得到画笔大小的圆圈,谢谢大家。

如果您在Activity 中,请使用以下代码获取屏幕大小

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

如果您不在Activity内部,请使用此选项来获取Display对象

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();

然后设置笔刷大小

brush_size = 0.1 * width;// or 0.1 * height 

可能是撰写的更新

@Composable
fun ScreenSizedSquare() {
    val context = LocalContext.current.resources
    val displayMetrics = context.displayMetrics
    val screenWidth = (displayMetrics.widthPixels / displayMetrics.density).dp
    Box(
        modifier = Modifier
            .clip(shape = RectangleShape)
            .background(Color.Blue)
            .width(screenWidth)
            .height(screenWidth)
    )
}

最新更新