自定义视图,如计算器LCD

时间:2012-02-19 20:56:42

标签: java android android-edittext calculator android-custom-view

我想设计一个如下所示的自定义视图:

enter image description here

我搜索了一个解决方案,我得到的是扩展EditText并自定义它。我查看了Android中的记事本编辑器示例,这对我没什么帮助,因为我想将EditText分成至少4个部分。

上面一个是写MDEG的地方,右边是写x10 ^ 012的地方,左边是当前操作,最后一个是最大部分数字在哪里。

但是,我希望您指导我正确的方向,并告诉我应该使用什么预构建视图作为基类来设计此自定义视图。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

为什么不在你的布局中设计呢?将一些LinearLayouts叠加在一起?

编辑边框问题的示例:

将它放在你的res / drawable文件夹中:

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
            <gradient
                android:startColor="@color/c1"
                android:endColor="@color/c2"
                android:angle="270" />
             <stroke
                android:width="1dp"
                android:color="@color/stroke_color" />
        </shape>
</item>

</selector>

答案 1 :(得分:1)

一种可能性是扩展RelativeLayout类,并在构造函数中扩展xml布局:

<RelativeLayout>
   <TextView /> // M     DEG(or 2 `TextView`)
   <ImageButton /> //ImageView for the operation
   <TextView /> //the digits
   <TextView /> //the extra digits 10^12
</RelativeLayout>

自定义RelativeLayout类:

public class CustomView1 extends RelativeLayout {

    public CustomView1(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.lcd_layout, this, true);

        TextView part1 = (TextView) findViewById(R.id.the_id);
        //other stuff
    }

    public CustomView1(Context context, AttributeSet attrs) {
        this(context, attrs, 0);        
    }

    public CustomView1(Context context) {
        this(context, null);        
    }

}