Android - 为imageview添加阴影

时间:2014-01-04 10:42:44

标签: android android-layout android-drawable nine-patch

我正在按照此问题的接受答案: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时,它就变成了这样:

enter image description here

哪个看起来很糟糕。我不知道9补丁图像在不同的屏幕分辨率下可能表现不同。那么阴影没有正确显示的问题是什么呢?

谢谢

1 个答案:

答案 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();