您好,登錄后才能下訂單哦!
GridView組件怎么中Android中使用?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
首先是布局文件: 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>
然后是點擊事件的設置:
其中arry_list只有一個ImageView放圖片 代碼下面給出
public class MainActivity extends Activity { private GridView gridView; //定義字符串數組作為提示的文本 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); //創建一個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); //創建一個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設置adapter gridView.setAdapter(simpleAdapter); //添加列表項中被選中的監聽器 gridView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //顯示當前被選中的圖片 imageView.setImageResource(photoId[position]); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); //添加列表中被單擊的監聽器 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" }; //檢測是否有寫的權限 int permission = ContextCompat.checkSelfPermission(MainActivity.this, "android.permission.WRITE_EXTERNAL_STORAGE"); if (permission != PackageManager.PERMISSION_GRANTED) { // 沒有寫的權限,去申請寫的權限,會彈出對話框 ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS,1); } try { //創建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>
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。