日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android UI学习 - GridView和ImageView的使用

發(fā)布時間:2024/6/5 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android UI学习 - GridView和ImageView的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GridView: A view that shows items in two-dimensional scrolling grid. The items in the grid come from the ListAdapter associated with this view. 簡單說,GridView就是我們資源管理器平常見到的一個個文件的icon顯示方式。 上面提及到了,GridView的Item是來自ListAdapter的,所以一般在Activity的onCreate使用GridView的代碼:
  • @Override?
  • public?void?onCreate(Bundle?savedInstanceState)?{?
  • ????super.onCreate(savedInstanceState);?
  • ?
  • ????setContentView(R.layout.grid_2);?
  • ?
  • ????GridView?g?=?(GridView)?findViewById(R.id.myGrid);?
  • ????g.setAdapter(new?ImageAdapter(this));?
  • }?
  • 而ImageAdapter一般是extends BaseAdapter。BaseAdapter是implements ListAdapter SpinnerAdapter,但很多時候自定義的Adapter都是override ListAdapter的父類Adapter接口里面的方法: int ? ? getCount() ? ? ? ? ? ? ? ? ? 獲取當前Adapter的Items數目 Object getItem(int position) ? ? 獲取相應position的Item long ????getItemId(int position) ?獲取相應position的Item在List中的row id View ? ?getView(int position, View convertView, ViewGroup parent) 獲取在指定position所要顯示的data的View 這些方法函數和swing的差不多,都是基于MVC。大概原理過程是這樣的:程序需要顯示GridView,那么要把data一個一個地顯示出來是通過 一個for循環(huán),首先call Adapter.getCount()得到有多少個data,然后position++地getItem,getView得到要顯示的view,這樣子逐 一地顯示出來! 下面是官方sample里面的Photo Grid的例子,本人省略了某些代碼:
  • public?class?ImageAdapter?extends?BaseAdapter?{?
  • ????public?ImageAdapter(Context?c)?{?
  • ????????mContext?=?c;?
  • ????}?
  • ?
  • ????public?int?getCount()?{?
  • ????????return?mThumbIds.length;?
  • ????}?
  • ?
  • ????public?Object?getItem(int?position)?{?
  • ????????return?position;?
  • ????}?
  • ?
  • ????public?long?getItemId(int?position)?{?
  • ????????return?position;?
  • ????}?
  • ?
  • ????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{?
  • ????????ImageView?imageView;?
  • ????????if?(convertView?==?null)?{?
  • ????????????imageView?=?new?ImageView(mContext);?
  • ????????????imageView.setLayoutParams(new?GridView.LayoutParams(45,?45));//設置ImageView寬高?
  • ????????????imageView.setAdjustViewBounds(false);?
  • ????????????imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);?
  • ????????????imageView.setPadding(8,?8,?8,?8);?
  • ????????}?else?{?
  • ????????????imageView?=?(ImageView)?convertView;?
  • ????????}?
  • ?
  • ????????imageView.setImageResource(mThumbIds[position]);?
  • ?
  • ????????return?imageView;?
  • ????}?
  • ?
  • ????private?Context?mContext;?
  • ?
  • ????private?Integer[]?mThumbIds?=?{?
  • ????????????R.drawable.sample_thumb_0,?R.drawable.sample_thumb_1,?
  • ????????????R.drawable.sample_thumb_2,?R.drawable.sample_thumb_3,?
  • ????????????R.drawable.sample_thumb_4,?R.drawable.sample_thumb_5,?
  • ????????????R.drawable.sample_thumb_6,?R.drawable.sample_thumb_7
  • ????};?
  • }?
  • 留意getView里面的代碼,要判斷convertView是否為null,以便重用,減少對象的創(chuàng)建,減少內存占用。 XML布局文件內容,原來就只是指明GridView:
  • <?xml?version="1.0"?encoding="utf-8"?>?
  • <GridView?xmlns:android="http://schemas.android.com/apk/res/android"??
  • ????android:id="@+id/myGrid"?
  • ????android:layout_width="fill_parent"??
  • ????android:layout_height="fill_parent"?
  • ????android:padding="10dp"?
  • ????android:verticalSpacing="10dp"?
  • ?????
  • ????android:horizontalSpacing="10dp"?
  • ????android:numColumns="auto_fit"?
  • ????android:columnWidth="60dp"?
  • ????android:stretchMode="columnWidth"?
  • ?????
  • ????android:gravity="center"?
  • ????/>?
  • 可以看到getView,和ImageView是重點,影響圖片的顯示效果。而且發(fā)現列數是不確定的,取決于每個ImageView的寬度和屏幕的寬度。接下來看看ImageView。 ImageView:Displays an arbitrary image, such as an icon. The ImageView class can load images from various sources (such as resources or content providers), takes care of computing its measurement from the image so that it can be used in any layout manager, and provides various display options such as scaling and tinting。 ImageView就是用來顯示Image,icon的。 這里我們重點理解ImageView的屬性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)。android:scaleType是控制圖片如何 resized/moved來匹對ImageView的size。ImageView.ScaleType /?android:scaleType值的意義區(qū)別: CENTER /center??按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則截取圖片的居中部分顯示 CENTER_CROP /?centerCrop??按比例擴大圖片的size居中顯示,使得圖片長(寬)等于或大于View的長(寬) CENTER_INSIDE /?centerInside??將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等于或小于View的長/寬 FIT_CENTER / fitCenter??把圖片按比例擴大/縮小到View的寬度,居中顯示 FIT_END /?fitEnd ??把圖片按比例擴大/縮小到View的寬度,顯示在View的下部分位置 FIT_START /?fitStart??把圖片按比例擴大/縮小到View的寬度,顯示在View的上部分位置 FIT_XY /?fitXY??把圖片不按比例擴大/縮小到View的大小顯示 MATRIX / matrix 用矩陣來繪制 一開始我不明白MATRIX矩陣,網上搜索后發(fā)現原來MATRIX矩陣可以動態(tài)縮小放大圖片來顯示,這里不展開深入的了解,只是貼出相關語句,縮小圖片:
  • //獲得Bitmap的高和寬?
  • int?bmpWidth=bmp.getWidth();?
  • int?bmpHeight=bmp.getHeight();?
  • ?
  • //設置縮小比例?
  • double?scale=0.8;?
  • //計算出這次要縮小的比例?
  • scaleWidth=(float)(scaleWidth*scale);?
  • scaleHeight=(float)(scaleHeight*scale);?
  • ?
  • //產生resize后的Bitmap對象?
  • Matrix?matrix=new?Matrix();?
  • matrix.postScale(scaleWidth,?scaleHeight);?
  • Bitmap?resizeBmp=Bitmap.createBitmap(bmp,?0,?0,?bmpWidth,?bmpHeight,?matrix,?true);?
  • 應用ImageView的例子很多,看看上次FrameLayout里面的:
  • <ImageView?
  • ????android:id="@+id/image"?
  • ????android:layout_width="fill_parent"??
  • ????android:layout_height="fill_parent"?
  • ????android:scaleType="center"?
  • ????android:src="@drawable/candle"?
  • ????/>?
  • ** 要注意一點,我發(fā)現Drawable文件夾里面的圖片命名是不能大寫的。 

    轉載于:https://www.cnblogs.com/zhy927/archive/2011/04/07/anroid.html

    總結

    以上是生活随笔為你收集整理的Android UI学习 - GridView和ImageView的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: av二区在线 | 97精品国产97久久久久久免费 | 国产精品一区在线看 | 久久99久久99| 夜夜骚av一区二区三区 | 亚洲free性xxxx护士白浆 | 日本免费三片在线播放 | 黄色三级av | 黑丝一区 | 亚州一级| 国产三级伦理片 | 尤物影院在线观看 | 又紧又大又爽精品一区二区 | 日韩动漫av| 国产激情在线 | 久国产 | 日本婷婷 | 91福利网 | 日韩r级电影在线观看 | 999在线视频 | 亚洲AV无码片久久精品 | 游戏涩涩免费网站 | 国产亚洲精品女人久久久久久 | 精久久久久 | 国产精品一区二区网站 | 加勒比hezyo黑人专区 | 小罗莉极品一线天在线 | 国产精品视频久久久久久久 | 亚洲视频区 | 我的邻居在线观看 | 奇米777视频 | 成人av福利| 国产精品久久久久久久久久久免费看 | 奇米精品一区二区三区在线观看 | 奇米97 | 亚洲熟女乱色综合亚洲av | 69视频一区二区三区 | 91网站在线观看视频 | www.桃色av嫩草.com| 俄罗斯黄色录像 | 致命弯道8在线观看免费高清完整 | 午夜电影在线播放 | 亚洲精品国产精品乱码不99按摩 | 美女精品视频 | 天天爱综合网 | 亚洲一级电影 | 日韩日韩日韩日韩日韩 | 国产精品久久久久久久久久免费看 | 欧美日韩国产一区二区 | 少妇精品一区 | 日韩精品无码一本二本三本色 | 亚洲人午夜射精精品日韩 | 九九热免费精品视频 | 久久久久久久久久免费视频 | 亚洲双插 | 精品熟女一区二区 | 国产在线精品一区 | 国产精品无码久久久久高潮 | 五月婷综合 | 波多野在线播放 | 日韩欧美xxx| 麻豆精品一区二区 | 亚洲综合成人在线 | 女生毛片| 日韩欧美在线视频观看 | 成人高潮片免费 | 天天干天天狠 | av噜噜噜| 在线播放小视频 | 动漫同人高h啪啪爽文 | 一级欧美一级日韩 | www.555国产精品免费 | 吊侵犯の奶水授乳羞羞漫画 | 亚洲爱爱图 | 国产人妻互换一区二区 | 韩国成年人网站 | 国产精品无码毛片 | 91麻豆精品国产理伦片在线观看 | 色综合欧美| 中文字幕 国产 | 性猛交╳xxx乱大交 偷偷操不一样的久久 | 亚洲高清在线 | 国产精品卡一卡二 | 女性私密整形视频 | av官网在线观看 | 91插插插永久免费 | 日批在线观看 | 午夜在线观看免费视频 | 国产欧美精品一区二区三区 | 中文字幕你懂的 | 91亚洲成人 | 色视频导航 | 又黄又刺激的视频 | 国产一级片播放 | bt天堂新版中文在线地址 | 国产资源网 | 午夜影视在线观看 | 国产美女无遮挡永久免费观看 | 激情在线网站 |