使用Drawable进行EditText测量

时间:2012-10-08 20:04:11

标签: android android-layout android-widget

我想创建类似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);
  }

但遭受明显不适当的填充。布局中的尺寸不正确。我在日食时看起来很好:

enter image description here

但是当我登上Galaxy Note时,它看起来太窄了:

too narrow

并且在HTC Desire上它看起来太宽(而且没有正确结束,我不介意那么多):

enter image description here

有没有一种方法可以直接在箭头下放置渐变?因为目前我猜它是分辨率和不同风格的额外空间的综合问题。

0 个答案:

没有答案