如何为ImageView / FrameLayout做特殊的圆角形状?

时间:2018-11-19 10:58:44

标签: android imageview android-imageview rounded-corners android-framelayout

您会看到here,我尝试为FrameLayout制作圆角。 这是我的rounded_shape.xml形状:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="@android:color/transparent"/>
    <stroke android:width="@dimen/margin"
            android:color="@color/colorBackground"/>
    <corners android:radius="24dp" />
</shape>

看起来像这样: rounded_shape.xml Preview

当我在代码中执行以下操作时: frameLayout.setBackground(new BitmapDrawable(getResources(),bitmapPhoto.bitmap)); frameLayout.setForeground(getResources()。getDrawable(R.drawable.rounded_shape)); 它看起来像这样: result on app

您可以通过圆角看到黑色边缘。

如何制作这样的形状: where the the edges are rounded and the black parts are gone already

1 个答案:

答案 0 :(得分:0)

我做了两个平行的形状。

  • 一个带有圆角的形状,对内角进行圆角处理。
  • 具有尖角的形状,使外角变尖

所有结构都在layer-list中,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list>
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="@dimen/margin"
                android:color="@color/color" />
            <corners android:radius="24dp" />
        </shape>
    </item>
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="@dimen/margin"
                android:color="@color/color" />
        </shape>
    </item>
</layer-list>