آموزش GalleryView در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش GalleryView در برنامه نویسی اندروید می پردازیم. از GalleryView برای نمایش یک لیست از عکس ها استفاده می شود و با کلیک بروی هر عکس عکسی که انتخاب شده است باید در ImageView نمایش داده شود در ادامه می توانید پیش نمایشی از آن را مشاهده کنید با ما همراه باشید.
به علت بالا بودن حجم عکس از لینک زیر برای دیدن آن استفاده کنید.
لینک
ابتدا یک فایل به نام activity_main.xml و کد زیرا را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <ImageView android:id="@+id/imageView" android:layout_marginTop="100dp" android:layout_width="250dp" android:layout_gravity="center_horizontal" android:layout_height="250dp" android:src="@drawable/alarm" /> </LinearLayout> |
در بالا یک GalleryView برای نمایش لیست عکس ها و یک ImageView برای نمایش عکس قرار گرفته است.
حالا باید یک کلاس به نام GalleryImageAdapter.java ایجاد کنیم تا بتونیم تعداد عکس ها را شمارش کنیم و view مربوط به هر عکس را به دست بیاریم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package ir.programchi; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; public class GalleryImageAdapter extends BaseAdapter { private Context mContext; public GalleryImageAdapter(Context context) { mContext = context; } public int getCount() { return mImageIds.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int index, View view, ViewGroup viewGroup) { ImageView i = new ImageView(mContext); i.setImageResource(mImageIds[index]); i.setLayoutParams(new Gallery.LayoutParams(200, 200)); i.setScaleType(ImageView.ScaleType.FIT_XY); return i; } public Integer[] mImageIds = { R.drawable.alarm, R.drawable.explore, R.drawable.language, R.drawable.lock, R.drawable.print, R.drawable.rotation_3d, R.drawable.spellcheck, R.drawable.redeem }; } |
شما باید یکسری عکس در پوشه drawable خود قرار دهید سپس نام های آن ها را در کلاس تغییر دهید.
و در آخر هم کد مربوط به MainActivity.java همانند زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | package ir.programchi; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Gallery; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { ImageView selectedImage; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Gallery gallery = (Gallery) findViewById(R.id.gallery); selectedImage=(ImageView)findViewById(R.id.imageView); gallery.setSpacing(1); final GalleryImageAdapter galleryImageAdapter= new GalleryImageAdapter(this); gallery.setAdapter(galleryImageAdapter); gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { selectedImage.setImageResource(galleryImageAdapter.mImageIds[position]); } }); } } |
ابتدا view های هر کدام از object های خودمان را به دست آوردیم سپس از setSpacing برای تعیین فاصله بین هر عکس در gallery استفاده شده است و سپس از اداپتوری که ساخته بودیم استفاده کردیم و در آخر هم یک Listener برای هر عکس تعریف شده است.
این آموزش هم به پایان رسید.
موفق و موید باشید.
سلام و درود
چطور میشه گالری تصاویری درست کرد، که بشه تصاویر اونو بصورت آنلاین آپدیت کرد و تصاویر جدید گذاشت
سلام و درود نیاز هست تا سمت سرور داشته باشید، باید اطلاعات رو سمت سرور ذخیره کنید بعدش از دیتابیس بخونید و نمایش دهید.