Android - Riempire layout con tasti
-
19-09-2019 - |
Domanda
Solo una breve domanda su come si dovrebbe fare per l'attuazione del presente. Io voglio che ci siano pulsanti nella parte inferiore dello schermo, ma se la dimensione dello schermo è più grande, sarebbe aggiunto più pulsanti.
Per esempio, ad un formato piccolo schermo, ci potrebbero essere 4-5 pulsanti nella parte inferiore, ma se è stato eseguito su un tablet o qualcosa di simile, non ci sarebbe forse 20 pulsanti.
Qualche suggerimento? Non può scorrere sia, deve solo compilare dinamicamente il layout con tasti.
Grazie.
Soluzione
Per mettere pulsanti nella parte inferiore di un layout, fare qualcosa di simile al layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout">
<LinearLayout
android:layout_height="wrap_content"
android:id="@+id/button_layout"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:gravity="center">
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"></Button>
<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"></Button>
<Button
android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3"></Button>
</LinearLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/button_layout"
android:id="@+id/content">
<ListView
android:id="@+id/ListView01"
android:layout_height="fill_parent"
android:layout_width="fill_parent"></ListView>
</FrameLayout>
</RelativeLayout>
Per modificare il numero di tasti vengono mostrati in base alla dimensione dello schermo, è necessario implementare schemi separati per Screen diverse dimensioni ..
http://developer.android.com/guide/practices/screens_support.html
Altri suggerimenti
Suona come si desidera creare la propria classe di layout personalizzato. Questo o semplicemente riempire un LinearLayout (per esempio) fino ad esaurimento di spazio sullo schermo.
Se si conosce la dimensione dei pulsanti in pixel si potrebbe usare DisplayMetrics per ottenere le dimensioni dello schermo, quindi calcolare quanti pulsanti più adatte alla propria spazio assegnato.
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.heightPixels givs altezza assoluta in pixel metrics.ydpi dà esatte pixel fisici per pollice dello schermo
e metrics.density dà la densità logica per scopi scala
vedi qui: http://developer.android.com/reference/ Android / util / DisplayMetrics.html
poi basta fare qualcosa di simile
do{
Button button=new Button(context);
button.setText("yada yada")
button.allYoursettings....
.
.
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
LinearLayout layout=(LinearLayout) findViewById(R.id.yourlayout);
layout.addView(button,p);
} while(havespaceleft);