Ich bin stecken geblieben versuchen, ein Layout von Bild-Schaltflächen ähnlich wie das Bild zur Verfügung gestellt, die vertikal scrollbar ist. Desired Android layout. Ich benutze Android Studio. Die App stürzt ab, wenn ich weitere Bildschaltflächen als 12 hinzufüge (was nur ausreicht, um einen Bildschirm zu füllen).
Ich möchte in der Lage sein, eine Anzahl von Bildschaltflächen in Reihen von 3 zu haben, die durchgescrollt werden können. Ich habe versucht, ScrollView
& ListView
zu verwenden, aber hatte kein Glück. Gibt es einen besseren Weg, dies zu tun?Erstellen eines Android-Layouts von Bildschaltflächen, die scrollbar sind?
Antwort
Was Sie brauchen, ist eine Rasteransicht.
Als Referenz
http://developer.android.com/guide/topics/ui/layout/gridview.html
Fügen Sie GridView
in Ihrem Layout.
Verweisen Sie das GridLayout in Ihrer Java-Klasse, und legen Sie Adapter zu es fest.
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
Adapter Class Ansichten auf Ihre Grid aufzublasen.
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7
};
}
Während Links die Frage beantworten können, ist es nicht ratsam, sie als Antworten zu posten. Wenn die Verbindung in Zukunft geändert wird, ist die Antwort nutzlos. Fügen Sie stattdessen die relevante Lösung aus dem Link in der Antwort hinzu und stellen Sie den Link als Referenz bereit. –
Der Link ist von android.developer Website .. die regelmäßig Updates von Google selbst erhält. Außerdem habe ich einen Beispielcode zu meiner Antwort hinzugefügt. – Nitesh
Danke, ich denke das hat mein Problem gelöst – Luke
Ich schlage vor, Sie Asymmetrische Gridview zu verwenden,
<com.felipecsl.asymmetricgridview.library.widget.AsymmetricGridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
mehr für Asymmetric Gridview siehe
wo u r log/ –
Was ist die Größe jedes Bildes? Was für eine Ausnahme hast du? –
Verwenden Sie einen RecyclerView mit benutzerdefinierten Adapter – Jeffalee