如何在android中执行此操作?是否可以使用一些选择器设计?我有一个选择,我可以用一个图标,这和使用图标我怎么能实现它设置为drawableLeft但没有这个请指导我在朝着好的方向
0
A
回答
1
您可以通过自定义Drawable
来实现此目的。喜欢的东西:
public class BackgroundColorDrawable extends Drawable {
private Paint paint;
private RectF rectF;
private float cornerRadius = 20f;
private float borderThickness = 3.5f;
private int insetColour = Color.GREEN;
public BackgroundColorDrawable() {
paint = new Paint();
paint.setAntiAlias(true);
rectF = new RectF();
}
public void setInsetColour(int insetColour) {
this.insetColour = insetColour;
invalidateSelf();
}
public void setBorderThickness(float borderThickness) {
this.borderThickness = borderThickness;
invalidateSelf();
}
public void setCornerRadius(float cornerRadius) {
this.cornerRadius = cornerRadius;
invalidateSelf();
}
@Override
public void draw(Canvas canvas) {
paint.setColor(Color.GRAY);
rectF.set(0f, 0f, canvas.getWidth(), canvas.getHeight());
canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint);
paint.setColor(Color.WHITE);
rectF.set(borderThickness, borderThickness, canvas.getWidth() - borderThickness, canvas.getHeight() - borderThickness);
canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint);
paint.setColor(insetColour);
rectF.set(borderThickness, borderThickness, 60f, canvas.getHeight() - borderThickness);
canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint);
paint.setColor(Color.WHITE);
rectF.set(30f, borderThickness, 60f, canvas.getHeight() - borderThickness);
canvas.drawRect(rectF, paint);
}
@Override
public void setAlpha(int alpha) { /* to implement */ }
@Override
public void setColorFilter(ColorFilter colorFilter) { /* to implement */}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
}
那么无论你正在使用你的EditText你只需要在代码中设置背景绘制:
BackgroundColorDrawable drawable = new BackgroundColorDrawable();
editText.setBackground(drawable);
注有在这个例子相当多透支的(相同的像素达到绘制几次),你可以优化。
您还需要在EditText上设置一些左填充以便光标正确排列。
0
您可以在EditText
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.pic_name, 0);
background-image
+0
是的,我知道它,但没有使用图像是有办法的,就像使用一些选择器。 @CodeWalker – Krrish
相关问题
- 1. 边框半径和背景颜色的IE CSS样式
- 2. android编辑文本如何开始在左上角打字?
- 3. 特定角落的拐角半径
- 4. 如何样式替代文字颜色?
- 5. 我的角落半径只适用于一个角落
- 6. 如何在android中制作角落半径
- 7. 角落ImgeView适合内CardView没有半径像CardView的角落Android
- 8. 如何编辑表单输入初始值的字体颜色?
- 9. 如何在使用边框半径时摆脱角落
- 10. AlertDialog的样式和颜色
- 11. 如何使用sed编辑文件的开始和结尾
- 12. UITableViewRowAction带拐角半径变化的单元背景颜色
- 13. 如何使无半径的底角?
- 14. 如何编辑WordPress角色
- 15. 如何为一个半蓝色半黄色的颜色着色?
- 16. 测试半径中补丁的颜色
- 17. 半径不同颜色的css边框
- 18. 角半径只适用于特定的角落
- 19. 使用UIBezierPath的角半径
- 20. 缺少字体和颜色中的文本编辑器设置
- 21. 更改单元格编辑样式动作按钮的颜色
- 22. 如何修复CSS边框半径从剪掉边框角落
- 23. 如何更改JList中文本的颜色和样式?
- 24. 如何在extJS中更改tbar的文本颜色和样式?
- 25. Android:编辑文本开始按钮
- 26. 如何更改水平ProgressBar的开始颜色和结束颜色的梯度
- 27. Android:不改变背景颜色的圆形按钮角落
- 28. 角ng样式替换表颜色
- 29. JavaScript的边框颜色/颜色样式
- 30. 突出显示UIButton BG颜色,但保留图层角半径?
感谢您的答案,这是非常好的解决方案,正是我所期待的。 @Jahnold – Krrish