覆盖:对于许多视图(Button,TextView)元素,使用相同的onDraw

时间:2014-04-12 10:12:05

标签: java android

我需要在android中为屏幕上的所有视图绘制自定义边框。每个视图都有不同的参数。为此,我考虑制作新的CustomBottonCustomTextView等类并重新定义他们的onDraw()方法。但是这些方法将包含相同的代码,因此

并不好用
  1. 为这些视图和
  2. 创建新类
  3. 使用相同的代码重写相同的onDraw()方法。
  4. 有更优雅/更快的方法吗?

1 个答案:

答案 0 :(得分:1)

为简单快速的解决方案做这样的事情(快速做事总是有性能权衡)。

  1. 任何观点都不要处理onDraw。

  2. 创建一个扩展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。

  3. 向此LinearLayout添加单个视图。无论是以编程方式还是通过xml。

    <com.example.BorderLinearLayout >
    
        <ImageView /> // or whatever. But a single view or viewgroup only
    
    </com.example.BorderLinearLayout>
    
  4. 希望这有帮助