我正在开发一款Android应用。在我的应用程序中,我正在打开一个像对话框这样的活动。对于该活动背景,我想为整个背景设置图像,但是使用边框半径。所以我创建了这样的后台XML资源。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/match_background_image" />
<item>
<shape android:shape="rectangle" android:padding="10dp">
<corners
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp"/>
</shape>
</item>
</layer-list>
我将该资源设置为LinearLayout的背景。当我打开活动时,我会得到这样的结果:
如您所见,角落处没有边界半径。此外,我想要做的是我还想将scaleType设置为图像的cropCenter。那么可以在XML资源中完成吗?
答案 0 :(得分:1)
我可以给你一个更好的方法,我用它作为另一种选择。你可以在android中使用cardView来制作圆角的角落。
在gradle依赖项中添加cardView使用以下内容,
compile 'com.android.support:cardview-v7:25.1.1'
在你的活动中需要打开一个对话框,按如下方式更改你的xml,
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_dialog"
android:layout_width="match_parent"
android:layout_height="match_parent"
card_view:cardCornerRadius="10dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/YOUR_IMAGE"/>
</android.support.v7.widget.CardView>
如果您正在使用扩展AppCompatActivity的活动,则
i.e. DialogActivity extends AppCompatActivity
你需要在下面的安卓清单中更改你的活动主题,
<activity android:name=".DialogActivity"
android:theme="@style/Theme.AppCompat.Dialog"></activity>
否则
<activity android:theme="@android:style/Theme.Dialog" />
haaaaa,很难完成,所以现在你唯一需要做的就是打电话
startActivity(new Intent(this, DialogActivity.class));