我正在开发一个Android应用程序,我们正试图通过用drawable替换位图图像来减少应用程序的占用空间。
我有以下图片
我想创建此卡的背景。我尝试使用shape drawable但它似乎没有足够的选项来创建背景。
当我使用渐变时,颜色混合在一起。我实际上想要两种颜色之间的明确分离。如何在不使用图像的情况下创建此背景?
答案 0 :(得分:1)
您可以使用rotate
和layer-list
在没有任何java代码的情况下完全在xml中获得效果。以下是示例,但为了让它更优雅地显示,您必须重新计算高度,宽度并选择更好的旋转角度。
<强> debit_card.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:left="10dp">
<shape>
<solid android:color="#ffff0000"></solid>
<size
android:width="100dp"
android:height="50dp"></size>
</shape>
</item>
<item>
<rotate
android:fromDegrees="-27"
android:pivotX="100%"
android:pivotY="0">
<shape android:shape="rectangle">
<size
android:width="100dp"
android:height="50dp"></size>
<solid android:color="#ff00ff00"></solid>
</shape>
</rotate>
</item>
</layer-list>
然后您可以在ImageView
中使用上面的drawable,布局大小属性必须为wrap_content/wrap_content
。
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/debit_card" />
</FrameLayout>
最终效果如下图所示。
答案 1 :(得分:0)
如果您真的想要绘制这样的背景,请尝试在API 21中添加VectorDrawable。并使用以下代码绘制背景
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="256dp"
android:viewportHeight="25"
android:viewportWidth="25"
android:width="256dp" >
<path
android:fillColor="#ff006666"
android:pathData="l 25,0
l -25,15z" />
<path
android:fillColor="#ff009999"
android:pathData="m 25,0
l -25,15,
l 25,0z" />
</vector>
这将是你的结果。