我正在按照此问题的接受答案:Custom ImageView with drop shadow为我的简单应用的图片视图添加阴影。我正在重复使用答案中完全相同的可绘制9补丁图像,这是我的代码:
<ImageView
android:id="@+id/photo"
android:background="@drawable/imageview_shadow"
android:paddingLeft="6px"
android:paddingTop="4px"
android:paddingRight="8px"
android:paddingBottom="9px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:src="@drawable/test_img" />
在ADT预览720P屏幕上看起来不错,但是当我将它安装到具有1080P分辨率的Nexus 5时,它就变成了这样:
哪个看起来很糟糕。我不知道9补丁图像在不同的屏幕分辨率下可能表现不同。那么阴影没有正确显示的问题是什么呢?
谢谢
答案 0 :(得分:0)
我相信以下一行将采用整个.png文件,包括它的1像素边框并将其用作位图。
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.myNinePatchDrawable);
尝试用以下内容替换它,首先从NinePatch中提取图像:
NinePatch myNinePatch = (NinePatch)getResources().getDrawable(R.drawable.myNinePatchDrawable);
Bitmap bmp = myNinePatch.getBitmap();