如何从BitmapDrawable获取Outline,或者至少是否可能?

时间:2014-10-31 12:31:18

标签: android

我只想使用具有独特形式的setElevation从ImageView的drawable中制作投影。 据我所知,我只需要设置View的轮廓,那么如何从大纲中获取大纲? 我试过这样做,但它没有给出任何影子:

 Outline outline = new Outline();
 image.getDrawable().getOutline(outline);
 image.setOutlineProvider(new ViewOutlineProvider() {
     @Override
     public void getOutline(View view, Outline outline) {
         outline.set(outline);
     }
 });

和xml:

<ImageView
    android:id="@+id/image"
    android:elevation="8dp"
    android:layout_width="48dp"
    android:layout_height="match_parent"
    android:adjustViewBounds="false"
    android:hapticFeedbackEnabled="true"
    android:scaleType="centerInside"
    android:src="@drawable/ic_drawable" />

1 个答案:

答案 0 :(得分:0)

就创建阴影而言,您可以为阴影创建9补丁图像,将其设置为图像视图的背景,并使用实际可绘制的源图像 android:src
然后只需为不同的边提供填充,这样就可以看到背景,它将充当阴影。