我正在使用图书馆。我正在展示我的库所使用的活动,我正在使用一种颜色来掩盖屏幕的颜色。看起来很酷。
但由于某些原因,我决定使用渐变。我已经开发了漂亮的渐变效果,如下所示
<?xml version="1.0" encoding="UTF-8"?>
<gradient
android:angle="90"
android:endColor="#555994"
android:centerColor="#b5b6d2"
android:startColor="#555994"
android:type="linear" />
<corners
android:radius="0dp"/>
</shape>
它看起来不错。但问题是我使用的库只接受颜色或颜色资源。我没有其他方法可以改变,库正在显示它自己的活动,我只需要传递将出现在活动上的颜色。
现在我的问题是:
我可以直接在color.xml文件中定义渐变颜色。或者是 有没有办法转换可绘制的渐变颜色文件 ,可以选择颜色。这样,图书馆可以应用我的自定义 渐变色作为背景
请帮帮我。这将是一个帮助。
编辑1:
对于那些说我要将其添加为图片背景或任何其他内容的人,让我分享一下该行的一小部分,以便您更清楚地了解案例
.withColorResource(R.color.indigo)
这里我引用了Color.xml中定义的紫色,我可以将任何东西设置为背景,因为库只能让我选择如上所示设置颜色。 所以我已经绘制了渐变色,现在我想要如何将渐变作为颜色引用。
答案 0 :(得分:1)
按钮的示例。 这是可绘制的资源,my_button_gradient.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="180"
android:centerColor="@color/flat_silver_sand"
android:endColor="@color/flat_white_smoke"
android:startColor="@color/flat_white_smoke" />
</shape>
</item>
</layer-list>
如果你想使用选择器; btnselector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/transparent_black_10" android:state_focused="true" android:state_pressed="false" />
<item android:drawable="@drawable/my_button_gradient" android:state_focused="true" android:state_pressed="true" />
<item android:drawable="@drawable/my_button_gradient" android:state_focused="false" android:state_pressed="true" />
</selector>
layout.xml;
...
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/btnselector"
android:textColor="#34495E"
/>
您可以为您的图像编写这样的代码。这可能对你有帮助。
答案 1 :(得分:0)
您只需创建一个可绘制资源(请参阅下面的示例),并将其添加到您创建的布局中
android:background="@drawable/grad"
答案 2 :(得分:0)
但问题是我使用的库只接受颜色或 色彩资源。
正如其他人所述,从渐变中创建资源并使用透明背景颜色背后图像。 使用RelativeLayout或FrameLayout堆叠视图。
答案 3 :(得分:0)
您可以在onCreate()方法中使用btnSubmit.setBackgroundResource(R.drawable.button_gradient)。
答案 4 :(得分:0)
Android中的颜色表示为Int
(我不是说R.color.white
是Int
-这只是颜色资源的ID),它只是普通颜色的数字表示十六进制颜色,例如#f00
-> 0xFFFF0000
。这意味着无法将渐变表示为单色资源。
TLDR:渐变不是颜色,而是带有角度的颜色集。