0

Я хочу разработать пользовательский вид, который выглядит следующим образом:Пользовательский вид как калькулятор LCD

enter image description here

Я искал решение, и что я должен был направить EditText и настроить его. Я рассмотрел пример редактора блокнота от Android, который мне не очень помог, так как я хочу разбить EditText на по крайней мере 4 части.

Верхний, где записаны M и DEG, в правой части находится запись x10^012, левая часть содержит текущую операцию, а последняя часть - самая большая, где цифры включены.

Тем не менее, я хочу, чтобы вы направили меня в правильном направлении, чтобы сделать это правильно и сообщить мне, какой предварительно построенный вид я должен использовать в качестве базового класса для создания этого пользовательского представления. Любая помощь будет оценена.

ответ

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);   
    } 

} 
+0

Как добавить XML в конструктор? –

+0

@ Eng.Fouad Я добавил код. – Luksprog

+0

Это отличное решение – JackMahoney

1

Почему бы не просто спроектировать это в своем макете? Выложить несколько LinearLayouts друг на друга?

редактировать пример пограничного вопроса:

это в вашем Рез/вытяжке папке:

<?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> 
+0

Но как я могу добавить границу, которая может содержать 4 части вместе как один вид? –

+0

Создайте фигуру в xml с инсультом и установите фон основного макета. – bwoogie

+0

Я отредактировал свой ответ, чтобы показать, как это сделать. – bwoogie