私はテスト例を行っています。画像の背景にグラデーションを使用している場合、コードは次のようになります
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<gradient
Android:startColor="#ff0000"
Android:centerColor="#00ff00"
Android:endColor="#0000ff"
Android:angle="180"/>
<corners Android:radius="5dp" />
</shape>
上記のxmlでは、angle
属性を取得しませんでした。しかし、angle
の値を少し変更すると、パターンが少し傾斜します。誰がそれがどのように正確に機能するかを私に説明できますか?
勾配は基本的に、任意の量の空間の変化(方向)を表します。色では、角度で表される方向の色の強さの変化を表します。この概念を表す図を次に示します。
この図は、水平方向の色の変化を示しています(角度は0に設定されています)。
XMLコード:
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<gradient
Android:startColor="#000000"
Android:angle="0"/>
</shape>
この図は、垂直方向の色の変化を示しています(角度は90に設定されています)。
XMLコード:
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<gradient
Android:startColor="#000000"
Android:angle="90"/>
</shape>
開始色、中心色、終了色として異なる色を使用することもできます。添付したコードには、これらの要素がすべて含まれています。
コードから斜めのグラデーションを作成できます。それははるかに簡単で、そこから多くのオプションを開くことができます。このスニペットは私を助けました
public void SetGradient(View view) {
GradientDrawable Gd = new GradientDrawable(
GradientDrawable.Orientation.TL_BR,
new int[]{0xFF141a24, 0xFF293f49, 0xFF72554c});
view.setBackground(Gd);
}
gradientDrawableクラスから利用可能な指示
/*public enum Orientation {
*//** draw the gradient from the top to the bottom *//*
TOP_BOTTOM,
*//** draw the gradient from the top-right to the bottom-left *//*
TR_BL,
*//** draw the gradient from the right to the left *//*
RIGHT_LEFT,
*//** draw the gradient from the bottom-right to the top-left *//*
BR_TL,
*//** draw the gradient from the bottom to the top *//*
BOTTOM_TOP,
*//** draw the gradient from the bottom-left to the top-right *//*
BL_TR,
*//** draw the gradient from the left to the right *//*
LEFT_RIGHT,
*//** draw the gradient from the top-left to the bottom-right *//*
TL_BR,
}*/
そして、フラグメント内のonCreateまたはonCreateViewからメソッドを呼び出し、親ビュー(私の場合)を渡します。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_view_parent, container);
...
SetGradient(view);
return view;
}
図形のグラデーションカラーを指定します。属性:
Android:angle整数。グラデーションの角度(度単位)。 0は左から右、90は下から上です。 45の倍数でなければなりません。デフォルトは0です。
ドキュメントの説明はカーンの答えと矛盾しているようです??
詳細は documentation で見つけることができます