我现在正在尝试为Android 4.4编写可调整大小的Android小部件。
它在Android Studio的模拟器和我的Sony Xperia Z2手机中运行良好。但是我朋友的华为手机出了问题。图像分辨率非常低,看起来很糟糕。
小部件仅包含一个ImageView ,并且我会在进行更新时将位图设置到其中。
我想知道位图应该是什么尺寸。在搜索互联网后,我试图通过
获取小部件的大小 Bundle widgetOpts = appWidgetManager.getAppWidgetOptions(widgetId);
int dpwidth = widgetOpts.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH);
int dpheight = widgetOpts.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT);
并用密度
计算多个位图的大小DisplayMetrics dm = context.getResources().getDisplayMetrics();
int width = (int)(dpwidth * dm.density);
int height = (int)(dpheight * dm.density);
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
在她的华为手机中,2x1小部件的价值是这样的:
OPTION_APPWIDGET_MAX_WIDTH 74
OPTION_APPWIDGET_MAX_HEIGHT 34
Density 2.0
DensityDpi 320
ScaledDensity 2.0
xdpi 315.31
ydpi 315.65
screen width 720
screen height 1184
并且Sony Xperia Z2中的值就像这样
OPTION_APPWIDGET_MAX_WIDTH 225
OPTION_APPWIDGET_MAX_HEIGHT 97
Density 3.0
DensityDpi 480
ScaledDensity 3.0
xdpi 428.625
ydpi 427.789
screen width 1080
screen height 1776
在Sony Xperia Z2中,dpwidth *密度= 675px,超过屏幕宽度的一半(在主屏幕中,2x1小部件的宽度应该小于我认为的屏幕的一半);在华为,dpwidth *密度= 148px,不到屏幕宽度的四分之一。 它们中的任何一个都看起来像小部件的宽度(以像素为单位)。
有什么建议吗?