我正在尝试在我的应用程序中绘制,所以我希望我的画笔大小为设备屏幕的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)
)
}