Android開發(fā)之使用GridView展示圖片的方法
本文實例講述了Android使用GridView展示圖片的方法。分享給大家供大家參考,具體如下:
今天說說GridView的使用。
所謂GvidView翻譯過來就是網(wǎng)格布局:是一個ViewGroup以網(wǎng)格顯示它的子視圖(view)元素,即二維的、可滾動的網(wǎng)格。網(wǎng)格元素通過ListAdapter自動插入到網(wǎng)格。
這個GridView用處特別多,我這里是用來展示廣告的。2*3的廣告位置。
廢話少說先看個效果圖,有圖就可以說個XX,對吧,大家都懂的。

大家可以看到搜索下面的那6個塊,效果布局還行吧,哈哈。下面跟著我的節(jié)奏來實現(xiàn)這個效果:
第一步準(zhǔn)備你的layout.xml
在你的layout.xml中加入一個Gridview:
<GridView
android:id="@+id/topMerchants"
style="@style/CustomGridView"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_marginTop="0dip"
android:layout_weight="1"
android:columnWidth="50dip"
android:gravity="center"
android:horizontalSpacing="5dip"
android:numColumns="3"
android:paddingTop="5dip"
android:stretchMode="columnWidth"
android:verticalSpacing="5dip"
android:minHeight="50dip"
/>
這里面的屬性都好理解,按照英文意思就行了,這里不多說。
第二步,準(zhǔn)備GridView要展示的內(nèi)容,即一個adapter:
public class TopMerchantGridAdapter extends BaseAdapter {
private List<? extends Object> list;
private AsyncImageLoader asyncImageLoader;
private Context context;
private static int getViewTimes = 0;
private String TAG = TopMerchantGridAdapter.class.getName();
public TopMerchantGridAdapter(List<? extends Object> list, Context context) {
this.list = list;
this.context = context;
asyncImageLoader = new AsyncImageLoader();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ImageView imageView;
QuhaoLog.i(TAG, "getView times : " + (getViewTimes++));
QuhaoLog.i(TAG, "getView " + position + " " + convertView);
Drawable cachedImage = null;
TopMerchant topMerchant = (TopMerchant) this.getItem(position);
final int defaultWidth = PhoneTool.getScreenWidth() / 3; // 屏幕寬度的1/3
final int defaultHight = PhoneTool.getScreenHeight() / 7; // 屏幕高度的1/7
if (null == convertView) {
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(defaultWidth, defaultHight));
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
// no content on top merchant grid
if (StringUtils.isNull(topMerchant.id)) {
imageView.setImageResource(R.drawable.no_logo);
return imageView;
}
String imageUrl = topMerchant.url;
QuhaoLog.d(TAG, "asyncImageLoader, the imageUrl is : " + imageUrl);
if (StringUtils.isNotNull(imageUrl)) {
cachedImage = asyncImageLoader.loadDrawable(imageUrl, position); //這里是從網(wǎng)絡(luò)獲取圖片
imageView.setImageDrawable(cachedImage);
}
return imageView;
}
class ViewHolder {
ImageView img;
TextView itemView;
TextView countView;
}
}
這里主要要注意的是重寫getView方法。這里我的圖片展示有兩種來源,一個是本地圖片(no_logo),還有一種是從網(wǎng)絡(luò)中下載的。你可以忽略來源。
最后一步把GridView和adapter連接起來:
GridView categorysGird = (GridView) findViewById(R.id.categorys); // 獲取到GridView ListAdapter adapter = new TopMerchantGridAdapter(topMerchants, MainActivity.this); topMerchantsGird.setAdapter(adapter); // 設(shè)置GridView的數(shù)據(jù)
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android使用VideoView播放本地視頻和網(wǎng)絡(luò)視頻的方法
本文將講解如何使用Android視頻播放器VideoView來播放本地視頻和網(wǎng)絡(luò)視頻,實現(xiàn)起來還是比較簡單的,有需要的可以參考借鑒。2016-08-08
Android中DialogFragment自定義背景與寬高的方法
DialogFragment 彈出框默認(rèn)是在屏幕的中央,左右還有留白,那么如何自定義背景和寬高呢?下面這篇文章就來給大家介紹了關(guān)于Android中DialogFragment自定義背景與寬高的方法,需要的朋友可以參考下。2017-08-08
Android中SharedPreferences簡單使用實例
這篇文章主要介紹了Android中SharedPreferences簡單使用案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
Kotlin擴(kuò)展函數(shù)與運(yùn)算符重載超詳細(xì)解析
Kotlin可以為一個不能修改的或來自第三方庫中的類編寫一個新的函數(shù)。這個新增的函數(shù)就像那個原始類本來就有的函數(shù)一樣,可以用普通的方法調(diào)用,這種機(jī)制的函數(shù)稱為擴(kuò)展函數(shù)2022-11-11
Android startActivityForResult實例詳解
這篇文章主要介紹了Android startActivityForResult實例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05
淺談Android系統(tǒng)的基本體系結(jié)構(gòu)與內(nèi)存管理優(yōu)化
這篇文章主要介紹了Android系統(tǒng)的基本體系結(jié)構(gòu)與內(nèi)存管理優(yōu)化,非常簡潔明了地總結(jié)了系統(tǒng)服務(wù)及垃圾回收等安卓的一些主要特性,需要的朋友可以參考下2016-02-02
Android系統(tǒng)view與SurfaceView的基本使用及區(qū)別分析
這篇文章主要為大家介紹了Android系統(tǒng)view與SurfaceView基本使用的案例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
Android人臉識別Demo豎屏YUV方向調(diào)整和圖片保存(分享)
下面小編就為大家分享一篇Android人臉識別Demo實現(xiàn)豎屏YUV方向調(diào)整和圖片保存的方法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12

