我想创建类似 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 上它看起来太宽了(并且没有正确结束,我不会那么介意):
有没有把渐变直接放在箭头下面的好方法?因为目前我猜它是分辨率和不同样式的附加空间的综合问题。