私はExpandableListAdapter.getChildViewで問題をデバッグしようとしています。Android GradientDrawable - Corner Radiiの問題
私は、リストアイテムのバックグラウンドに対してグラデーションと半径が1のコーナーを含むシェイプを持つDrawableを定義しました。
その後、私のアダプタのコードで、私はgetChildView以内にこのスニペットを持っています。ここ
GradientDrawable background = (GradientDrawable) convertView.getBackground();
float topRadius = 0;
float bottomRadius = 0;
// Make the corner radius obvious for debugging
if (childPosition == 0)
topRadius = 14;
if (childPosition == (mValues.size() - 1))
bottomRadius = 14;
background.setCornerRadii(new float [] { topRadius, topRadius,
topRadius, topRadius,
bottomRadius, bottomRadius,
bottomRadius, bottomRadius});
convertView.setBackgroundDrawable(background);
試みは、最初のリスト項目のトップ、そして最後のリスト項目の下を丸めることです。デバッグを介して、私が望むアイテムに必要な値を設定しているように見えます。
しかし、私が抱えている問題は、すべてのリストアイテムに対してコーナー半径が最下位アイテムのように設定されていることです。
ちょっと除いて、少なくともデバッグの目的でGradientDrawableの角の半径を取得する方法はありますか?
おかげで、
WTS
わからない、ただいつもあなたが丸められたくないコーナーのために0.1Fの代わりに0を使用する必要があり、半径既知のバグがあることを指摘したいと思います。 http://code.google.com/p/android/issues/detail?id=939を参照してください - あなたのやり方は逆だと思うので、おそらくリストアダプターロジックのものかもしれません。 –
角の半径を取得することはできません。http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android /graphics/drawable/GradientDrawable.java#GradientDrawable。あなたはxmlでdrawableを定義しようとしましたか?違いがあるかどうかを確認するだけですか? –
@Mathias:基本ドロアブルはxmlですが、最初と最後の項目(唯一)を変更する必要があります。 –