MPe*_*ier 5 android android-resources layer-list
我希望完成一些看起来像这里底部的操作(对于所有四个角,但是我只显示图像的底部):
到目前为止,我有:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/orange_tile"
android:tileMode="repeat"
android:dither="true"
android:gravity="center" />
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="2dp"/>
<stroke android:color="@color/white" android:width="0.5dp" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
然而,这给了我一个tiiiny在每个角落像素,按预览:
那么,我该如何抓住那些角落?可见的笔触不是它,不是实际需要的...
尝试过的事情:
将固体添加到项目中可以得到与我想要的完全相反的效果。可能有掩盖技巧...
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/orange_tile"
android:tileMode="repeat"
android:dither="true"
android:gravity="center" />
</item>
<item>
<shape android:shape="rectangle">
<color android:color="@color/white" />
<corners android:radius="2dp"/>
<stroke android:color="@color/white" android:width="0.5dp" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
磁贴:
我可以想到几个选择。
只需再添加一个背景矩形来隐藏角落:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/orange_tile"
android:tileMode="repeat"
android:dither="true"
android:gravity="center" />
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="2dp"/>
<stroke android:color="@color/white" android:width="0.5dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="0dp"/>
<stroke android:color="@color/white" android:width="0.5dp"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)您可以将角矩形移出视图并使其更大:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/icon_bg"
android:tileMode="repeat"
android:dither="true"
android:gravity="center" />
</item>
<item android:top="-1.5dp" android:bottom="-1.5dp"
android:left="-1.5dp" android:right="-1.5dp"
>
<shape android:shape="rectangle">
<corners android:radius="2dp"/>
<stroke android:color="@color/white" android:width="1.5dp"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)在这种情况下,您需要微调偏移量。这个有点hacky,因为它缩小了图块内容。您可能希望在微调时使用android:scaleX="float"和来缩放图像。android:scaleY="float"
如果您愿意接受用于获取圆角的代码解决方案,您也可以尝试RoundedBitmapDrawable类。
float cornerRadius = 2f * Resources.getSystem().getDisplayMetrics().density;
Bitmap tileBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.orange_tile);
RoundedBitmapDrawable roundedTileDrawable =
RoundedBitmapDrawableFactory.create(getResources(), tileBitmap);
roundedTileDrawable.setCornerRadius(cornerRadius);
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
862 次 |
| 最近记录: |