我需要在android中为屏幕上的所有视图绘制自定义边框。每个视图都有不同的参数。为此,我考虑制作新的CustomBotton
,CustomTextView
等类并重新定义他们的onDraw()
方法。但是这些方法将包含相同的代码,因此
onDraw()
方法。有更优雅/更快的方法吗?
答案 0 :(得分:1)
为简单快速的解决方案做这样的事情(快速做事总是有性能权衡)。
任何观点都不要处理onDraw。
创建一个扩展LinearLayout的类。
2.1将此Linearlayout的背景设置为边框的颜色。
2.1.1 - More better read border color attribute from xml at runtime.
2.2将其填充设置为边框的宽度。
2.3分别将其宽度和高度设置为wrap_content和wrap_content。
向此LinearLayout添加单个视图。无论是以编程方式还是通过xml。
<com.example.BorderLinearLayout >
<ImageView /> // or whatever. But a single view or viewgroup only
</com.example.BorderLinearLayout>
希望这有帮助