我想创建类似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上它看起来太宽(而且没有正确结束,我不介意那么多):
有没有一种方法可以直接在箭头下放置渐变?因为目前我猜它是分辨率和不同风格的额外空间的综合问题。