LinearLayoutの境界線を作成したい。それで、シェイプを作成することにしました。境界線にグラデーションが必要です。以下はそれをしていません。四角形を塗りつぶし、ストロークを作成します。塗りつぶされた長方形は必要ありません。ストロークだけです。そして、グラデーションをストロークに適用したいと思います。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >
<gradient
Android:angle="360"
Android:centerColor="#e95a22"
Android:endColor="#ff00b5"
Android:gradientRadius="360"
Android:startColor="#006386"
Android:type="sweep" />
<stroke
Android:width="2dp"
Android:color="#ff207d94" />
</shape>
次のようなものを試してください:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item>
<shape Android:shape="rectangle" >
<gradient
Android:angle="360"
Android:centerColor="#e95a22"
Android:endColor="#ff00b5"
Android:gradientRadius="360"
Android:startColor="#006386"
Android:type="sweep" />
<stroke
Android:width="2dp"
Android:color="#ff207d94" />
</shape>
</item>
<item
Android:bottom="2dp"
Android:left="2dp"
Android:right="2dp"
Android:top="2dp">
<shape Android:shape="rectangle" >
<solid Android:color="#fff" />
</shape>
</item>
</layer-list>
受け入れられた答えは私が望んでいたとおりに機能しなかったので、私も自分の解決策を投稿します。他の誰かに役立つかもしれません:)
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item>
<!-- create gradient you want to use with the angle you want to use -->
<shape Android:shape="rectangle" >
<gradient
Android:angle="0"
Android:centerColor="@Android:color/holo_blue_bright"
Android:endColor="@Android:color/holo_red_light"
Android:startColor="@Android:color/holo_green_light" />
</shape>
</item>
<!-- create the stroke for top, left, bottom and right with the dp you want -->
<item
Android:bottom="2dp"
Android:left="2dp"
Android:right="2dp"
Android:top="2dp">
<shape Android:shape="rectangle" >
<!-- fill the inside in the color you want (could also be a gradient again if you want to, just change solid to gradient and enter angle, start, maybe center, and end color) -->
<solid Android:color="#fff" />
</shape>
</item>
</layer-list>
これにより、上部の境界線が2dpのレイアウトが作成されます。レイアウトの背景として設定するだけです
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape Android:shape="rectangle">
<gradient
Android:startColor="#4fc949"
Android:centerColor="#0c87c5"
Android:endColor="#b4ec51"
Android:angle="180" />
</shape>
</item>
<item Android:top="2dp">
<shape Android:shape="rectangle">
<solid Android:color="@color/background_color"/>
</shape>
</item>
</layer-list>
この余分なソースは問題を解決するはずです
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape Android:shape="rectangle">
<gradient
Android:angle="360"
Android:centerColor="#e95a22"
Android:endColor="#ff00b5"
Android:gradientRadius="360"
Android:startColor="#006386"
Android:type="sweep" />
<size Android:height="170dp"
Android:width="170dp"/>
</shape>
</item>
<item Android:top="2dp" Android:bottom="2dp" Android:right="2dp" Android:left="2dp">
<shape Android:shape="rectangle">
<size Android:width="140dp"
Android:height="140dp"/>
<solid Android:color="@color/colorAccent"/>
<solid Android:color="@color/white"/>
</shape>
</item>
</layer-list>
これは、あなたがやりたいことの適切な解決策になります。ストロークのグラデーションと塗りつぶしのグラデーションが含まれます
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape >
<gradient
Android:startColor="#2196F3"
Android:endColor="#673AB7"
Android:angle="270" />
<stroke
Android:width="0dp"
Android:color="@color/transparentColor" />
<corners
Android:radius="8dp" />
<padding
Android:left="2dp"
Android:right="2dp"
Android:top="2dp"
Android:bottom="2dp" />
</shape>
</item>
<item>
<shape Android:shape="rectangle">
</shape>
</item>
<item Android:top="0dp">
<shape>
<gradient
Android:startColor="#FBB100"
Android:endColor="#FF9900"
Android:angle="270"/>
<corners
Android:radius="8dp" />
</shape>
</item>
</layer-list>