Ich versuche, ein Bildraster mit Text anzuzeigen. Bilder aus einem Ordner verwenden. Ich habe verschiedene Ansätze und Tutorials ohne Erfolg versucht. Ich habe sowohl Lese- als auch Schreibrechte für den internen und externen Speicher. Wann immer ich die Anwendung debugge, bekomme ich nur einen leeren Bildschirm. Ich habe versucht, einen Haltepunkt auf der Adapter-GetView() Methode zu setzen, die nie getroffen wird.Xamarin Image Grid von Ordner
Hier ist meine MainActivity OnCreate() -Methode:
protected override void OnCreate(Bundle bundle)
{
if (!_dir.Exists()) { _dir.Mkdir(); }
base.OnCreate(bundle);
SetContentView(R.Layout.Main);
string[] FilePath = null;
string[] FileName = null;
if (_dir.IsDirectory)
{
DroidIO.File[] imageList = _dir.ListFiles();
FilePath = new string[imageList.Length];
FileName = new string[imageList.Length];
for (int i = 0; i < imageList.Length; i++)
{
FilePath[i] = imageList[i].AbsolutePath;
FileName[i] = imageList[i].Name;
}
}
var gvImageList = FindViewById<GridView>(R.Id.gvImageList);
gvImageList.SetAdapter(new ImagesFromFolderAdapter(this, FilePath, FileName));
gvImageList.ItemClick += delegate { gvImageList_ItemClick(); };
}
Und mein Bild Adapter Klasse:
public class ImagesFromFolderAdapter : BaseAdapter
{
private Activity context;
private string[] filePath;
private string[] fileName;
public ImagesFromFolderAdapter(Activity c, string[] fp, string[] fn)
{
this.context = c;
this.fileName = fn;
this.filePath = fp;
}
public override int Count { get; }
public int GetCount()
{
return filePath.Length;
}
public override Java.Lang.Object GetItem(int position)
{
return position;
}
public override long GetItemId(int position)
{
return position;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
if (view == null)
view = context.LayoutInflater.Inflate(R.Layout.gallery_item_layout, null);
view.FindViewById<ImageView>(R.Id.gitemImage).SetImageBitmap(BitmapFactory.DecodeFile(filePath[position]));
view.FindViewById<TextView>(R.Id.gitemText).Text = fileName[position];
return view;
}
}
Irgendwelche Ideen, wo ich falsch gehe? Ich benutze derzeit ein LG G3 als Debug-Gerät, wenn dies hilft. Vielen Dank für jede Hilfe im Voraus.
Dank ich mich, dass vermisste kann nicht glauben! –