Benutzerdefinierte Ansicht wie Taschenrechner LCD
-
27-10-2019 - |
Frage
Ich möchte eine benutzerdefinierte Ansicht entwerfen, die so aussieht:
Ich suchte nach einer Lösung, und was ich bekam, war, eine zu erweitern EditText
und passen Sie es an. Ich habe mich mit dem Beispiel des Notepad -Editors von Android angesehen, was mir nicht viel geholfen hat, da ich das teilen möchte EditText
in mindestens 4 Teile.
Der obere ist wo M
und DEG
ist geschrieben, der rechte Teil ist, wo der x10^012 geschrieben ist, der linke Teil den aktuellen Betrieb enthält und der letzte Teil der größte ist, bei dem die Ziffern eingeschaltet sind.
Ich möchte jedoch, dass Sie mich in die richtige Richtung führen, um es richtig zu tun, und mir mitzuteilen, welche vorgefertigte Ansicht ich als Basisklasse verwenden sollte, um diese benutzerdefinierte Ansicht zu entwerfen. Jede Hilfe wird geschätzt.
Lösung
Eine Möglichkeit besteht darin, die zu erweitern RelativeLayout
Klasse und im Konstruktor aufblasen Sie ein XML -Layout:
<RelativeLayout>
<TextView /> // M DEG(or 2 `TextView`)
<ImageButton /> //ImageView for the operation
<TextView /> //the digits
<TextView /> //the extra digits 10^12
</RelativeLayout>
Brauch RelativeLayout
Klasse:
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);
}
}
Andere Tipps
Warum nicht einfach das in Ihrem Layout entwerfen? Stapel einiger LinearLayouts
übereinander?
bearbeiten Beispiel für die Grenzfrage:
Legen Sie dies in Ihren rES/DRAGEBLE -Ordner:
<?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>