我想在我的应用程序中绘图,所以我希望我的画笔大小是设备屏幕的10%,这意味着对于所有设备,它应该是不同的大小。 我在android开发人员指南Here中读到有关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;
}
但我想要的只是获得画笔大小的圆圈,谢谢大家。
答案 0 :(得分:1)
如果您在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
答案 1 :(得分:0)
也许是 compose 的更新
@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)
)
}