fc2ブログ

戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
6
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
12

drawableのshape/cornersの不具合

android の shape タグを用いた描画に、Android 3.0 (API 11) 以下では <corners> タグの下部の設定が左右逆となる不具合があります。

以下の参考サイトでは Android 2.3.3 (API 10) 以下になってましたが、エミュレータで確認したところ Android 3.0 (API 11) 以下で問題が発生しました。
Android 3.1 (API 12) 以降は正常に動作します。

【参考サイト】
CEED - androidのshapeのバグ

shape タグに関しては以下のサイトがわかりやすかったです。
TechBooster - shapeタグを使ってボタンの背景色をグラデーションにする

【現象】
android_shape_bug_before.png

設定は上から順に
<corners android:topLeftRadius="10dp" />
<corners android:topRightRadius="10dp" />
<corners android:bottomRightRadius="10dp" />
<corners android:bottomLeftRadius="10dp" />


としているが android:bottomRightRadiusandroid:bottomLeftRadius が逆に表示されてしまう。

【対処法】
resフォルダに drawable-v12 フォルダを追加します。
android_shape_res.png
追加した drawable-v12 フォルダに正しい方の XML ファイルを入れます。

通常の drawable フォルダには android:bottomRightRadiusandroid:bottomLeftRadius を逆にしたXMLファイルを入れます。
※ XML ファイル名は同じです

こうすることで、すべてのデバイスで以下のように正しく表示されるようになります。
android_shape_bug_after.png

不具合対応のために余計なファイルを作るのは嫌ですね…
Android 開発チームは作ってるときに気づかなかったんでしょうか…
スポンサーサイト



プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始