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

具體實現(xiàn):
首先是布局文件: 1.一個GridView(展示所有的圖片) 2.一個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" > <!--定義一個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"/> <!--定義一個ImageView組件--> <ImageView android:id="@+id/image_view" android:layout_width="240dp" android:layout_height="240dp" android:layout_gravity="center_horizontal"/> </LinearLayout>
然后是點擊事件的設(shè)置:
其中arry_list只有一個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)建一個list對象,list對象的元素是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)建一個SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItems,
//arry_list只有一個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);
//添加列表項中被選中的監(jiān)聽器
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)聽器
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//顯示被單擊的圖片
imageView.setImageResource(photoId[position]);
}
});
//點擊圖片保存
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] PERMISSIONS = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE" };
//檢測是否有寫的權(quán)限
int permission = ContextCompat.checkSelfPermission(MainActivity.this,
"android.permission.WRITE_EXTERNAL_STORAGE");
if (permission != PackageManager.PERMISSION_GRANTED) {
// 沒有寫的權(quán)限,去申請寫的權(quán)限,會彈出對話框
ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS,1);
}
try {
//創(chuàng)建savephoto類保存圖片
SavePhoto savePhoto = new SavePhoto(MainActivity.this);
savePhoto.SaveBitmapFromView(imageView);
} catch (ParseException e) {
e.printStackTrace();
}
}
});
}
}
值得注意的一點: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)容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結(jié)》、《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Flutter學(xué)習(xí)LogUtil封裝與實現(xiàn)實例詳解
這篇文章主要為大家介紹了Flutter學(xué)習(xí)LogUtil封裝與實現(xiàn)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
在Android app中實現(xiàn)九(n)宮格圖片連續(xù)滑動效果
這篇文章主要介紹了在Android app中實現(xiàn)九(n)宮格圖片連續(xù)滑動效果的方法,作者舉了鳳凰新聞應(yīng)用的例子,同理功能圖標(biāo)也可以利用這樣的滑動效果,需要的朋友可以參考下2016-02-02
Android Activity啟動模式之singleTask實例詳解
這篇文章主要介紹了Android Activity啟動模式之singleTask,結(jié)合實例形式較為詳細的分析了singleTask模式的功能、使用方法與相關(guān)注意事項,需要的朋友可以參考下2016-01-01
Android應(yīng)用退出登錄的實現(xiàn)方法
每一個app都會有一個”退出登陸”的功能,當(dāng)點擊退出之后需要將所有的Activity都finish掉,開始是想將棧中的所有Activity清除掉,但是沒有找到方法,后來用廣播實現(xiàn)了。下面小編給大家分享android應(yīng)用退出登錄的實現(xiàn)方法,需要的朋友參考下2017-04-04
Android編程之監(jiān)聽器的實現(xiàn)方法
這篇文章主要介紹了Android編程之監(jiān)聽器的實現(xiàn)方法,以實例形式較為詳細的分析了Android監(jiān)聽器的創(chuàng)建、注冊及相關(guān)使用技巧,需要的朋友可以參考下2015-11-11
Android實現(xiàn)帶有邊框的ListView和item的方法
這篇文章主要介紹了Android實現(xiàn)帶有邊框的ListView和item的方法,結(jié)合實例形式分析了ListView和item四周添加邊框的實現(xiàn)步驟與相關(guān)技巧,需要的朋友可以參考下2016-07-07
Android音視頻之視頻采集(系統(tǒng)API預(yù)覽)
這篇文章主要為大家詳細介紹了Android音視頻之視頻采集,系統(tǒng)API預(yù)覽,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12

