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

歡迎訪問 生活随笔!

生活随笔

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

Android

【Android】11.3 屏幕旋转和场景变换过程中GridView的呈现

發布時間:2025/3/8 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android】11.3 屏幕旋转和场景变换过程中GridView的呈现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分類:C#、Android、VS2015;

創建日期:2016-02-21

一、簡介

實際上,對于布局文件中的View來說,大多數情況下,Android都會自動保存這些狀態,并不需要我們都去處理它。這一節仍以GridView為例(第10章已經介紹過其基本用法了),說明屏幕旋轉以及場景切換過程中用GridView呈現的圖像是如何自動變換的。

本節主要關注下面的問題:

(1)如何通過GridView顯示多幅圖像。

(2)如何使用Activity從一個活動切換到另一個活動,即利用Activity實現場景轉換的功能,將GridView網格圖像的Acivity過渡到大圖像的Activity。

(3)當用戶觸摸或單擊GridView中的每幅圖片時,如何立即切換到該圖片對應的詳細信息描述頁;當用戶單擊屏幕下方左側的那個【Back】按鈕時,又返回到用GridView顯示多幅圖像的頁面。

二、示例—ch1103GridViewSceneTransition

1、運行截圖

下面左圖為在GridView顯示兩列圖像的效果,右圖為單擊【3、穿衣的小狗】后顯示的效果。按右圖下方左側的【Back】按鈕又返回到左圖的界面,可再次單擊另一幅圖。

?

本人不想再去找其他的圖片了,所以仍然用前面章節示例中的圖來演示。當然,你也可以將例子中這個兩列的圖改為3列、4列、……,同時將界面改為任何你希望實現的功能。

2、實現步驟

(1)添加ch1103_GridViewSceneTransitionMain.axml文件

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><GridViewandroid:id="@+id/gridview1"android:layout_width="wrap_content"android:layout_height="match_parent"android:gravity="center_horizontal"android:horizontalSpacing="2dp"android:numColumns="2"android:stretchMode="columnWidth"android:verticalSpacing="2dp"android:layout_gravity="center"android:minWidth="25dp"android:minHeight="25dp"android:drawSelectorOnTop="true"android:layout_marginLeft="50dp"android:layout_marginRight="50dp"android:layout_marginTop="20dp"android:layout_marginBottom="20dp" /> </LinearLayout>

(2)添加ch1103_Item.axml文件

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="wrap_content"android:layout_height="wrap_content"android:outlineProvider="bounds"><ImageViewandroid:id="@+id/ch1102ImageViewItem"android:layout_width="90dp"android:layout_height="90dp"android:scaleType="centerCrop"android:minHeight="25dp"android:minWidth="25dp"android:layout_gravity="center_horizontal" /><TextViewandroid:id="@+id/ch1102TextViewItemTitle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:maxLines="1"android:layout_gravity="center_horizontal"android:minWidth="25dp"android:textSize="10dp" /> </LinearLayout>

(3)添加ch1103_Detail.axml文件

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/ch1102ImageView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:scaleType="centerCrop"android:layout_marginTop="20dp" /><TextViewandroid:id="@+id/ch1102TextViewTitle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:maxLines="1"android:layout_gravity="center_horizontal"android:textColor="#FF0000" /><TextViewandroid:id="@+id/ch1102TextViewDesc"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:padding="16dp" /> </LinearLayout>

(4)添加ch1103GridViewSceneTransitionMain.cs文件

using System.Collections.Generic; using Android.App; using Android.Content; using Android.OS; using Android.Views; using Android.Widget;namespace MyDemos.SrcDemos {[Activity(Label = "【例11-3】場景轉換")]public class ch1103GridViewSceneTransitionMain : Activity{protected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);SetContentView(Resource.Layout.ch1103_GridViewSceneTransitionMain);var gridview = FindViewById<GridView>(Resource.Id.gridview1);var adapter = new ch1102MyImageAdapte(this);gridview.Adapter = adapter;gridview.ItemClick += (s, e) =>{var item = adapter[e.Position];Intent intent = new Intent(this, typeof(ch1103DetailActivity));intent.PutExtra("id", item.ImageId);intent.PutExtra("title", item.Title);intent.PutExtra("desc", item.Desc);StartActivity(intent);};}}/// <summary>/// 這里僅以小狗圖為例說明基本用法,這樣做主要是為了不讓例子過于復雜,/// 實際上,你可以將小狗圖改為景點圖、大樓圖、交通圖、功能模塊圖、……等。/// </summary>class ch1103Item{/// <summary>/// 圖片ID/// </summary>public int ImageId { get; set; }/// <summary>/// 圖片的標題/// </summary>public string Title { get; set; }/// <summary>/// 對該圖片的描述/// </summary>public string Desc { get; set; }}class ch1102MyImageAdapte : BaseAdapter<ch1103Item>{Activity context;public ch1102MyImageAdapte(Activity context){this.context = context;}private static List<ch1103Item> items = new List<ch1103Item>(){new ch1103Item {ImageId=Resource.Drawable.ch05sample_0,Title="1、迷茫的小狗", Desc ="哇,迷路了,該往哪走呢?" },new ch1103Item {ImageId=Resource.Drawable.ch05sample_1,Title="2、耍賴的小狗", Desc ="你就是躺到那也不讓你吃。" },new ch1103Item {ImageId=Resource.Drawable.ch05sample_2,Title="3、穿衣的小狗", Desc ="過年了,給小狗穿個花衣服。" },new ch1103Item {ImageId=Resource.Drawable.ch05sample_3,Title="4、小狗和女友", Desc ="狗狗,后面是你女朋友嗎?" },new ch1103Item {ImageId=Resource.Drawable.ch05sample_4,Title="5、悲催的小狗", Desc ="這個圖片很悲催。" },new ch1103Item {ImageId=Resource.Drawable.ch05sample_5,Title="6、看門的小狗", Desc ="好好看門,別讓賊進來了。" },new ch1103Item {ImageId=Resource.Drawable.ch05sample_6,Title="7、賣萌的小狗", Desc ="狗狗的沙發很給力啊。" },new ch1103Item {ImageId=Resource.Drawable.ch05sample_7,Title="8、憤怒的小狗", Desc ="誰惹你了,眼瞪這么大。" },};public override ch1103Item this[int position]{get { return items[position]; }}public override int Count{get { return items.Count; }}public override long GetItemId(int position){return items[position].ImageId;}public override View GetView(int position, View convertView, ViewGroup parent){if (convertView == null){convertView = context.LayoutInflater.Inflate(Resource.Layout.ch1103_Item, parent, false);}ch1103Item item = this[position];ImageView imageView = convertView.FindViewById<ImageView>(Resource.Id.ch1102ImageViewItem);imageView.SetImageResource(item.ImageId);TextView title = convertView.FindViewById<TextView>(Resource.Id.ch1102TextViewItemTitle);title.Text = item.Title;return convertView;}} }

(5)添加ch1103DetailActivity.cs文件

using Android.App; using Android.Content; using Android.OS; using Android.Widget;namespace MyDemos.SrcDemos {[Activity(Label = "【例11-3】場景轉換")]public class ch1103DetailActivity : Activity{protected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);SetContentView(Resource.Layout.ch1103_Detail);int imgId = Intent.GetIntExtra("id", -1);if (imgId != -1){var imageView = FindViewById<ImageView>(Resource.Id.ch1102ImageView1);imageView.SetImageResource(imgId);var title = FindViewById<TextView>(Resource.Id.ch1102TextViewTitle);title.Text = Intent.GetStringExtra("title");var desc = FindViewById<TextView>(Resource.Id.ch1102TextViewDesc);desc.Text = Intent.GetStringExtra("desc");}}} }

總結

以上是生活随笔為你收集整理的【Android】11.3 屏幕旋转和场景变换过程中GridView的呈现的全部內容,希望文章能夠幫你解決所遇到的問題。

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