Androidは三角形を描き、色を動的に変えることができます.
2222 ワード
方法1:
この方法の三角形の角度は制御できない.実は矩形の回転だからだ.
次に、xmlをコントロールのbackgroundに設定します.コードでは、次のように使用します.
注意:xmlがラベルを使用している場合、コードには直接
一方、layer-listを使用する場合は、まずLayerDrawableを使用し、次にいくつかのitemを使用するにはgetDrawable(i)を使用する必要があります.iはshapeの順序
方法2:
SVG,android 5を使用する.0以上でSVGがサポートされるようになり、互換パッケージが以前のバージョンをサポートしたり、サードパーティのオープンソースライブラリ(svg-android,lottio)を使用したりすることもあります.
使い方はDrawableCompat.setTint
方法3:
カスタムビュー、Canvasペイント、この比較的自由で、最も簡単で、簡単な図形はやはりこれを使ったほうがいいです.
それからあなたのレイアウトファイルで直接使用して、プレビューは効果がなくて、先に工事をbuildする必要があります.
参照リンク:
Androidはshapeで三角気泡効果を実現
Androidカスタムコントロールは、色プロパティを提供し、コントロールの色を動的に変更します.
Android svg三角形を描く
コード動的変更SVGベクトルマップの色
SVG-Androidオープンソースライブラリ
AndroidでSVGを使った穴
Android描画メカニズム
この方法の三角形の角度は制御できない.実は矩形の回転だからだ.
-
次に、xmlをコントロールのbackgroundに設定します.コードでは、次のように使用します.
LayerDrawable layerDrawable = (LayerDrawable) view.getBackground();
GradientDrawable drawable = (GradientDrawable)layerDrawable.getDrawable(0);
drawable.setColor(mainColor);
注意:xmlがラベルを使用している場合、コードには直接
GradientDrawable drawable = (GradientDrawable)view.getBackground();
一方、layer-listを使用する場合は、まずLayerDrawableを使用し、次にいくつかのitemを使用するにはgetDrawable(i)を使用する必要があります.iはshapeの順序
方法2:
SVG,android 5を使用する.0以上でSVGがサポートされるようになり、互換パッケージが以前のバージョンをサポートしたり、サードパーティのオープンソースライブラリ(svg-android,lottio)を使用したりすることもあります.
使い方はDrawableCompat.setTint
SVG ,
VectorDrawableCompat vectorDrawableCompat = VectorDrawableCompat.create(getResources(), R.drawable.ic_home_black_24dp, getTheme());
//
vectorDrawableCompat.setTint(getResources().getColor(R.color.color_blue));
YourImageView.setImageDrawable(vectorDrawableCompat)
方法3:
カスタムビュー、Canvasペイント、この比較的自由で、最も簡単で、簡単な図形はやはりこれを使ったほうがいいです.
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
p.setColor(Color.BLACK);
//
Path path = new Path();
path.moveTo(80, 200);//
path.lineTo(120, 250);
path.lineTo(80, 250);
path.close(); //
canvas.drawPath(path, p);
}
それからあなたのレイアウトファイルで直接使用して、プレビューは効果がなくて、先に工事をbuildする必要があります.
参照リンク:
Androidはshapeで三角気泡効果を実現
Androidカスタムコントロールは、色プロパティを提供し、コントロールの色を動的に変更します.
Android svg三角形を描く
コード動的変更SVGベクトルマップの色
SVG-Androidオープンソースライブラリ
AndroidでSVGを使った穴
Android描画メカニズム