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