2011-02-27 9 views
1

、私は次のような構成に2つの長方形の半透明のビューがあります。それは立派に見えるようにするにビューに丸みのあるコーナーを追加しますか?私のレイアウトで

---------------------| 
|  | B  | 
|  -------------| 
| A |   
|  | 
|  | 
|  | 
|  | 
|  | 
-------- 

を、私はAの右下の角を丸めると隅に曲線を追加しますこのようなB会うの場所:

---------------------| 
|     | 
|  ------------| 
|  /  
|  | 
|  | 
|  | 
|  | 
|  | 
|  | 
|------/ 

誰もが好ましくビットマップを(この手段として、私は後でより簡単に色やコーナーのサイズを変更することができます)を使用することなく、私はこれを行うことができる方法を提案することはできますか?

私は長方形の背景描画可能とクリッピングを使用して自分自身でラウンドする方法を知っているが、私は私の知る限りではAとB

答えて

1

AとBは、相対的なレイアウトである場合、あなたは小さなCビューの右を追加することができますコーナー、下、左にBにアライメントし、onDraw()に丸めを描画させます。

編集:

API Demos -> Graphics -> Xfermodesであり、あなたはそれから円カットで何かを描くことができる方法の例を示します(私はその経験がありません)。

+0

ありがとうございましたが、私が抱えている問題は、必要な形状、つまり真ん中から切り取った円形の四角形を描く方法がわからないことです。 – rbcc

+0

@rebeccamaher編集を参照してください – bigstones

0

に参加するコーナーを追加するための良い方法を考えることはできません、あなたビューのプロパティからのみコーナーを作成することはできませんので、2つのオプションしかありません。

まず、カスタム画像を使用してください(おそらく、9パッチは全体的に単一の背景を得るために役立つかもしれませんが)やはり色を簡単に変更することはできません。

他の独自のビューを作成し、onDraw()メソッドをオーバーライドすることです

(見hereを取る)

+0

ありがとう、どのように私はonDrawで必要な図形を描くことができますか? – rbcc

+0

私はこれがうまくいくと思います。 AとBビューの背景色を設定します。次にCを底辺のビュー(Bの下、Aの右)のビューにします。 onDraw()を使用すると、指定されたCanvasメソッドを呼び出すことができます。最も簡単なのは、Canvas.drawRect()を使用して左上隅に完全な矩形を作成し、次にrectの上にCanvas.drawOval()を使用して背景色の円を追加します。 – XGouchet

関連する問題