Android開(kāi)發(fā)之組件GridView簡(jiǎn)單使用方法示例
本文實(shí)例講述了Android開(kāi)發(fā)之組件GridView簡(jiǎn)單使用方法。分享給大家供大家參考,具體如下:
案例:簡(jiǎn)單的圖片瀏覽器,保存圖片到相冊(cè)
保存圖片到相冊(cè) 方法代碼:http://www.dhdzp.com/article/158668.htm
廢話不多說(shuō)先上效果;

具體實(shí)現(xiàn):
首先是布局文件: 1.一個(gè)GridView(展示所有的圖片) 2.一個(gè)ImageView(放選中的圖片)
<?xml version="1.0" encoding="utf-8"?> <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" tools:context=".MainActivity" > <!--定義一個(gè)GridView組件--> <GridView android:id="@+id/grid01" android:layout_width="match_parent" android:layout_height="wrap_content" android:horizontalSpacing="1pt" android:verticalSpacing="1pt" android:numColumns="3" android:gravity="center"/> <!--定義一個(gè)ImageView組件--> <ImageView android:id="@+id/image_view" android:layout_width="240dp" android:layout_height="240dp" android:layout_gravity="center_horizontal"/> </LinearLayout>
然后是點(diǎn)擊事件的設(shè)置:
其中arry_list只有一個(gè)ImageView放圖片 代碼下面給出
public class MainActivity extends Activity {
private GridView gridView;
//定義字符串?dāng)?shù)組作為提示的文本
private ImageView imageView;
private int[] photoId = new int[]{
R.drawable.huangjindiao, R.drawable.piaopiao,
R.drawable.xiaochouyu, R.drawable.paodangyu,
R.drawable.addphoto, R.drawable.huangjinxiahu
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//創(chuàng)建一個(gè)list對(duì)象,list對(duì)象的元素是Map
List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();
for (int i = 0 ; i < photoId.length ; i ++ ){
Map<String,Object> photolist = new HashMap<String, Object>();
photolist.put("image",photoId[i]);
listItems.add(photolist);
}
//獲取圖片的imageView
imageView = (ImageView) findViewById(R.id.image_view);
//創(chuàng)建一個(gè)SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItems,
//arry_list只有一個(gè)ImageView放圖片 代碼下面給出
R.layout.array_list,
new String[]{"image"}, new int[]{R.id.image});
gridView = (GridView) findViewById(R.id.grid01);
//為gridview設(shè)置adapter
gridView.setAdapter(simpleAdapter);
//添加列表項(xiàng)中被選中的監(jiān)聽(tīng)器
gridView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//顯示當(dāng)前被選中的圖片
imageView.setImageResource(photoId[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
//添加列表中被單擊的監(jiān)聽(tīng)器
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//顯示被單擊的圖片
imageView.setImageResource(photoId[position]);
}
});
//點(diǎn)擊圖片保存
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] PERMISSIONS = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE" };
//檢測(cè)是否有寫(xiě)的權(quán)限
int permission = ContextCompat.checkSelfPermission(MainActivity.this,
"android.permission.WRITE_EXTERNAL_STORAGE");
if (permission != PackageManager.PERMISSION_GRANTED) {
// 沒(méi)有寫(xiě)的權(quán)限,去申請(qǐng)寫(xiě)的權(quán)限,會(huì)彈出對(duì)話框
ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS,1);
}
try {
//創(chuàng)建savephoto類(lèi)保存圖片
SavePhoto savePhoto = new SavePhoto(MainActivity.this);
savePhoto.SaveBitmapFromView(imageView);
} catch (ParseException e) {
e.printStackTrace();
}
}
});
}
}
值得注意的一點(diǎn):array_list:
<?xml version="1.0" encoding="utf-8"?> <ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/image" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitXY"> </ImageView>
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android圖形與圖像處理技巧總結(jié)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android調(diào)試技巧與常見(jiàn)問(wèn)題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android?Spinner和GridView組件的使用示例
- Android 控件GridView使用案例講解
- Android使用GridView實(shí)現(xiàn)表格分割線效果
- Android自定義gridView仿頭條頻道拖動(dòng)管理功能
- Android中GridView插件的使用方法
- Android控件gridview實(shí)現(xiàn)單行多列橫向滾動(dòng)效果
- Android通過(guò)實(shí)現(xiàn)GridView的橫向滾動(dòng)實(shí)現(xiàn)仿京東秒殺效果
- Android使用Gridview單行橫向滾動(dòng)顯示
- Android Gridview布局出現(xiàn)滾動(dòng)條或組件沖突解決方法
相關(guān)文章
Flutter學(xué)習(xí)LogUtil封裝與實(shí)現(xiàn)實(shí)例詳解
這篇文章主要為大家介紹了Flutter學(xué)習(xí)LogUtil封裝與實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
在Android app中實(shí)現(xiàn)九(n)宮格圖片連續(xù)滑動(dòng)效果
這篇文章主要介紹了在Android app中實(shí)現(xiàn)九(n)宮格圖片連續(xù)滑動(dòng)效果的方法,作者舉了鳳凰新聞應(yīng)用的例子,同理功能圖標(biāo)也可以利用這樣的滑動(dòng)效果,需要的朋友可以參考下2016-02-02
Android Activity啟動(dòng)模式之singleTask實(shí)例詳解
這篇文章主要介紹了Android Activity啟動(dòng)模式之singleTask,結(jié)合實(shí)例形式較為詳細(xì)的分析了singleTask模式的功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-01-01
Android應(yīng)用退出登錄的實(shí)現(xiàn)方法
每一個(gè)app都會(huì)有一個(gè)”退出登陸”的功能,當(dāng)點(diǎn)擊退出之后需要將所有的Activity都finish掉,開(kāi)始是想將棧中的所有Activity清除掉,但是沒(méi)有找到方法,后來(lái)用廣播實(shí)現(xiàn)了。下面小編給大家分享android應(yīng)用退出登錄的實(shí)現(xiàn)方法,需要的朋友參考下2017-04-04
Android編程之監(jiān)聽(tīng)器的實(shí)現(xiàn)方法
這篇文章主要介紹了Android編程之監(jiān)聽(tīng)器的實(shí)現(xiàn)方法,以實(shí)例形式較為詳細(xì)的分析了Android監(jiān)聽(tīng)器的創(chuàng)建、注冊(cè)及相關(guān)使用技巧,需要的朋友可以參考下2015-11-11
Android實(shí)現(xiàn)帶有邊框的ListView和item的方法
這篇文章主要介紹了Android實(shí)現(xiàn)帶有邊框的ListView和item的方法,結(jié)合實(shí)例形式分析了ListView和item四周添加邊框的實(shí)現(xiàn)步驟與相關(guān)技巧,需要的朋友可以參考下2016-07-07
Android音視頻之視頻采集(系統(tǒng)API預(yù)覽)
這篇文章主要為大家詳細(xì)介紹了Android音視頻之視頻采集,系統(tǒng)API預(yù)覽,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

