在may app app中,我试图使用填充屏幕半顶部的位图(汽车仪表板)。根据屏幕大小调整此位图的大小(活动始终为PORTRAIT)。我只有一个资源'没有xhdpi,xxhdpi ......)
我需要 - 在位图上的精确位置绘制文字, - 并确切地知道位图被点击的位置,根据点击的位置做了不同的事情(哪个汽车仪表板"按钮"已被使用)
我试图将位图放在ImageView的XML布局中。在这种情况下,我不知道OnDraw()在哪里绘制文本? 我没有成功获得活动中位图的大小(总是为零)
所以我在OnDraw()中绘制位图。我知道如何在RectF中绘制位图,并在位图中精确绘制一个圆(例如) 在活动中,onTouchEvent提供触摸的X和Y,但我不知道汽车仪表板上的哪个按钮已被使用,因为我不知道位图的大小。
希望这很清楚。
最好的方法是什么?谢谢你的帮助
答案 0 :(得分:0)
我发现了几个帖子并制作了一大堆,它对我有用,但我认为应该存在更简单的帖子:
int screenWidth = getApplicationContext()。getResources()。getDisplayMetrics()。widthPixels; // 1080 int screenHeight = getApplicationContext()。getResources()。getDisplayMetrics()。heightPixels; // 1920
// status bar height OK (72)
int statusBarHeight = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
statusBarHeight = getResources().getDimensionPixelSize(resourceId);
}
// ActionBar height
int actionBarHeight=0;
TypedValue tv = new TypedValue();
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
{
actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
// what I aml looking for
int myCanvasHeight = screenHeight - statusBarHeight - actionBarHeight; // 1680