Domanda

Voglio progettare una vista personalizzata che assomiglia a questa:

enter image description here

Ho cercato una soluzione e quello che ho ottenuto è stato estendere un EditText e personalizzalo. Ho esaminato l'esempio dell'editor di blocco note da Android, che non mi ha aiutato molto da quando voglio dividere il EditText in almeno 4 parti.

Quello superiore è dove M e DEG è scritto, la parte giusta è dove viene scritto l'X10^012, la parte sinistra contiene l'attuale operazione e l'ultima parte è la più grande in cui si trovano le cifre.

Tuttavia, voglio che tu mi guidi nella giusta direzione per farlo correttamente e dirmi quale vista pre-costruita dovrei usare come classe base per progettare questa vista personalizzata. Qualsiasi aiuto sarà apprezzato.

È stato utile?

Soluzione

Una possibilità è estendere il RelativeLayout La classe e nel costruttore gonfiano un layout XML:

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

Costume RelativeLayout classe:

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

}

Altri suggerimenti

Perché non progettarlo solo nel tuo layout? Impila un po ' LinearLayouts sopra l'uno dell'altro?

modificare Esempio di domanda di confine:

Metti questo nella cartella 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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top