0

ComboBox のようなものを作成したかったのですが、TextView 内の右側にある矢印ボタンです。私が今まで見てきたすべてのアプローチは、矢印をテキストフィールドの外側に (追加のボタンとして) 配置します。これは私は好きではありません。それをシミュレートするために、次のようにできると思いました

 android:drawableRight="@android:drawable/arrow_up_float"
 android:ems="10"

これは見栄えがよく、右側に矢印があります。次のようなグラデーションペイントを後ろに置くことができると思いました:

 int witdhComboBox = 50;
  @Override
  protected void onDraw(Canvas canvas) {
    //
    Paint paint = new Paint();

    final int bottom = getBottom() - 10;
    paint.setShader(new LinearGradient(0, 0, 0,bottom,
                                       Color.WHITE,
                                       Color.GRAY,
                                       Shader.TileMode.REPEAT));
    canvas.drawRect(new Rect(getRight() - witdhComboBox,
                             getTop() - getPaddingTop() - getTopPaddingOffset()
                                 + getBottomPaddingOffset()
                                 + getPaddingBottom(),
                             getRight() - 8,
                             bottom), paint);
    super.onDraw(canvas);
  }

しかし、明らかに不適切なパディングに苦しんでいます。レイアウト内の不適切な寸法。私が日食にいるとき、私は元気に見えます:

ここに画像の説明を入力

しかし、Galaxy Note に乗ると、狭すぎるように見えます。

狭すぎる

HTC Desire では幅が広すぎるように見えます (適切に終了していないため、あまり気にしません):

ここに画像の説明を入力

グラデーションを矢印の真下に配置する良い方法はありますか? 現在、解像度と追加スペースの異なるスタイルの組み合わせの問題だと思います。

4

0 に答える 0