سلام خوش اومدین به مبحث جدید برنامه نویسی اندروید.امروز میخاهیم در مورد گرید ویو(Gridview)در اندروید صحبت کنیم،گرید ویو در اندروید مثل لیست ویو هست ولی با این تفاوت که در لیست ویو ما به صورت یک بعدی میتوینم مطالب و اطلاعات رو به کاربر نشون بدیم ولی در گرید ویو اینگونه نیست و میتونیم به صورت دئ بعدی و در حالت گرید نمایش بدیم.در این اموزش ما با نحوه ساخت گرید ویو و مقدار دهی بهش اشنا میشیم.من یک پروژه جدید به اسم Gridview ساختم و از قسمت پالت ها در پوشه کامپوزیت (composite) ابزار Gridview رو انتخاب کردم و در مرکزیت لایه خودم قرار دادم .یه نگاهی به خواص گرید ویو بندازیم
می بینیم که یک خاصیت جدید در گرید ویو به اسم android:numColumns هست این خاصیت تعداد ستون های گرید ویو رو مشخص میکنه و میتونه هم به صورت سفارشی باشه هم میتونه به صورت Auto_fit.در حالت سفارشی میتونه یه مقدار مدنظر بهش بدیم مثلا 3 یا 4 ولی در حالت auto_fit گرید ویو به صورت اتومتیک ستون ها رو میچینه.میخواهیم باهم چندتا خاصیت جدید به گرید ویو مون اضافه کنیم یکی از این خاصیت ها android:columnWidth هست،این خاصیت فاصله ستون ها از همدیگه رو مشخص میکنه و مقدارش هم با dp محاسبه میشه مثلا 100dp. خاصیت بعدی android:stretchMode هست این خاصیت یک حالت کششی به گرید ویو میده که بتونه خودش رو ستون ها(column) هماهنگ کنه و مقدارش رو هم میتونه از android:columnWidth بگیره.خاصیت بعدی که در همه ابزار های اندروید میشه ازش استفاده کرد android:gravity هست که محل قرار گیری ابزار بر روی لایه رو مشخص میکنه،که میتونه مقداری مثل center,top,left,rigth داشته باشه.در زیر کدهای کامل گرید ویو رو میبینید.
<GridView android:id="@+id/gridView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:columnWidth="100dp" android:gravity="center" android:stretchMode="columnWidth" android:numColumns="auto_fit" > </GridView>
بعد از اینکه کارمون با لایه تموم شد.وقت اون میرسه که به قسمت MainActivity برنمون بریم و کدهای جاواش رو بنویسیم.دراین بخش ما نیاز داریم تا مقداری را برای نمایش ب بروی گرید ویو بکار ببریم.برای این کار یک رشته ایجاد میکنیم و اسمش رو وب میزاریم.بعد از اینکه استرینگمون رو معرفی کردیم وقتش میرسه که گرید ویو مون رو به بخش MainActivity معرفی کنیم،و بعد با استفاده از یک آرای اداپتر مقادیر رو از استرینگ بگیریم و به گرید ویو بفرستیم.و در پایان اگرید ویومون رو به آرای اداپتر ست کنیم.در زیر کد کامل رو میبیند.
package com.appinapps.gridview; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.GridView; import android.widget.Toast; public class MainActivity extends Activity { String [] web = {"UnitAzad" , "MahdiAmini" , "Developer" , "Learn" , "Graphic" , "FreeDownload" , "Android"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //معرفی گرید ویو از لایه GridView grid = (GridView) findViewById(R.id.gridView1); //معرفی اداپتر ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, web); grid.setAdapter(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
الان میتونید برنامه که ساختید رو اجرا کنید و نحوه کارش رو ببنید.موفق باشد