I背景私は楕円形の固体の色に設定されている線形レイアウトビューを持っています。今のところ、私は背景が円である。今、私は同じことを達成したい、すなわち2つの色の円を得るために形状drawableを使用します。添付をご参照ください。アンドロイド楕円形状2色
答えて
あなたの描画可能なフォルダ shape.xmlでshape.xmlを作成します。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<gradient android:startColor="#0000FF" android:endColor="#00FF00"
android:angle="270"/>
</shape>
とビューの背景に –
ニースの答えをこのshape.xmlを追加し、それが正確になります。 <?xmlのバージョン= "1.0" エンコード= "UTF-8"> <形状のxmlns:アンドロイド= "http://schemas.android.com/apk/res/android - : だから、最終的には、XMLのようになります" アンドロイド:形状=" リング」> <勾配のandroid:startColor = "#1 0000FF" アンドロイド:endColor = "#00FF00" アンドロイド:角度= "270" /> 全体的にあなたの答えはただ驚くばかりです。 @Damini –
これは遅く来るかもしれないが、私は悩み良い答えを見つけることがあったので、私のテイクを聞きます。
私は勾配遷移を持たないように位置アレイによって構成されてLinearGradientシェーダを円を描くと、それにするカスタム描画可能を使用しました。グラデーションの線の方向は、LinearGradientのコンストラクタで設定します(ここでは対角線です)。
public class MultiColorCircleDrawable extends Drawable {
private Paint paint;
private int[] colors;
public MultiColorOvalDrawable(int[] colors) {
this.colors = colors;
}
private void init() {
paint = new Paint();
paint.setShader(createShader());
}
private Shader createShader() {
int[] colorsArray = new int[colors.length * 2];
float[] positions = new float[colors.length * 2];
for (int i = 0; i < colors.length; i++) {
int y = i * 2;
int color = colors[i];
colorsArray[y] = color;
colorsArray[y+1] = color;
positions[y] = 1f/colors.length * i;
positions[y+1] = 1f/colors.length * (i+1);
}
Rect bounds = getBounds();
int width = bounds.right - bounds.left;
int height = bounds.bottom - bounds.top;
return new LinearGradient(0, 0, width, height, colorsArray, positions, Shader.TileMode.REPEAT);
}
@Override
public void draw(Canvas canvas) {
if (null == paint) {
init();
}
Rect bounds = getBounds();
int width = bounds.right - bounds.left;
int height = bounds.bottom - bounds.top;
canvas.drawCircle(width/2, height/2, (width/2) - strokeWidth, maskPaint);
}
@Override
public void setAlpha(int i) {
}
@Override
public void setColorFilter(ColorFilter colorFilter) {
}
@Override
public int getOpacity() {
return PixelFormat.OPAQUE;
}
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<gradient
android:centerX="-1"
android:type="sweep"
android:startColor="color1"
android:endColor="color2"
/>
</shape>
答えを与えるときは、[あなたの答えが何であるかについてのいくつかの説明](http://stackoverflow.com/help/how-to-answer)があることが望ましいです。 –
Audoその作品ですが、水平にではなく、縦(LEFT/RIGHT)で色分けしたい場合はどうすればいいですか? – murt
- 1. 楕円形状ジオメトリの作成方法
- 2. Androidビットマップクロップ楕円形
- 3. 長方形/楕円形プログラム
- 4. 楕円ストロークの背景色
- 5. シンプルなJavaScriptの楕円形(...)
- 6. wpfの楕円形ボタン
- 7. アンドロイドで楕円形のボタンを作る方法は?
- 8. 2つの楕円(楕円)の交点の面積ですか?
- 9. CGContextの楕円放射状勾配?
- 10. Gdkカイロの描画楕円形
- 11. 楕円形の塗り方は?
- 12. ダブル幅の楕円形のサファリsvg
- 13. 描画長方形と楕円
- 14. 楕円形のプログレスバーの垂直インジケータ
- 15. 楕円の色をランダムな色に変更する方法
- 16. 楕円のラスタライズ
- 17. 楕円バイナリマスク
- 18. アニメーション楕円サイズ
- 19. 楕円が
- 20. は楕円
- 21. 複数の楕円のイオン2
- 22. 楕円の同心円リング
- 23. 円と楕円のラスタライゼーションアルゴリズム
- 24. cssで楕円形の長方形を作成するには?
- 25. HTML5キャンバス楕円のアウトラインが変形して変形する
- 26. CSS - 背景色の要素の問題 - 円が楕円形で表示されます
- 27. SAGEの楕円点
- 28. C#WPF楕円スライダー
- 29. 楕円体のプロット
- 30. 楕円曲線点
uがuは右図の画像を達成したいですか?一つは、通常の青い楕円形であり、第二は、 'ClipDrawable'に巻き付け緑色の楕円形で、正直なところ、なぜそれを作るために:これは私が二層に' LayerDrawable'を使用 –
こんにちは@ZahanSafallwaはいあなたが好きなものを描くことができるカスタムの 'Drawable'クラスを作ることができたら、とても複雑です。 –
上で達成したいものです – pskink