我想设计一个如下所示的自定义视图:
我搜索了一个解决方案,我得到的是扩展EditText
并自定义它。我查看了Android中的记事本编辑器示例,这对我没什么帮助,因为我想将EditText
分成至少4个部分。
上面一个是写M
和DEG
的地方,右边是写x10 ^ 012的地方,左边是当前操作,最后一个是最大部分数字在哪里。
但是,我希望您指导我正确的方向,并告诉我应该使用什么预构建视图作为基类来设计此自定义视图。任何帮助将不胜感激。
答案 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);
}
}