我在Android 2.3和Android 4.1上运行我的程序,但我的应用程序的图片在Android 4.1中显示非常小:
我删除<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="14" />
中的manifest.xml
我的应用程序在两者上完美运行:
但我不想删除<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="14" />
我的问题在哪里?
我的代码摘要是:
public class MapCanvas extends ImageView
{
...
public MapCanvas(Context context)
{
super(context);
}
public MapCanvas(MainActivity context, Bundle state)
{
super(context);
this.context = context;
...
}
...
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
...
//Paint Offset X, Y, Zoom
this.paint.setColor(Color.rgb(51, 51, 51));
this.paint.setFakeBoldText(true);
this.paint.setTextSize(15);
String text = "X:" + OFFSET_X + ", Y:" + OFFSET_Y + ", Zoom:" + MapZoom.Zoom;
canvas.drawText(text, 5, 15, paint);
...
}
...
}
答案 0 :(得分:4)
删除targetSdkVersion
会隐式1
,启用所有向后兼容模式,包括UI scaling for apps targeting below API level 4。这就解释了为什么删除uses-sdk
“修复了问题。
要修复代码,您必须scale your pixel sizes and measures with screen density。
答案 1 :(得分:0)
非常感谢朋友们
我将<use-sdk ... />
编辑为
<uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
并将@SuppressLint("NewApi")
添加到MapCanvas
我的问题解决了!