1. <div id="f8mbs"></div>
        您好,歡迎來到源碼搜藏網!分享精神,快樂你我!
        [加入VIP] 設為首頁 | 收藏本站 | 網站地圖 | Sitemap | TAG標簽
      2. 首 頁
      3. 在線工具
      4. jquery手冊
      5. 當前位置:首頁 > 安卓源碼 > 技術博客 >

        一款Android圖片庫應用程序demo開發詳解及源碼分享

        時間:2018-08-08 23:38 來源:互聯網 作者:源碼搜藏 瀏覽:收藏 挑錯 推薦 打印

        源代碼下載:鏈接: https://pan.baidu.com/s/1w1KRxzbrj2gGbrX2xQdK0w 密碼: xuue 介紹 本文介紹了如何在Android中創建自己的圖庫。 圖庫是一個顯示水平滾動圖像列表的視圖。 我們可以指定選擇圖庫中的圖像時要執行的操作。 例如,我們可以使用 ImageView 控

        源代碼下載:鏈接: https://pan.baidu.com/s/1w1KRxzbrj2gGbrX2xQdK0w 密碼: xuue
        一款Android圖片庫應用程序demo開發詳解及源碼分享 一款Android圖片庫應用程序demo開發詳解及源碼分享

        介紹

        本文介紹了如何在Android中創建自己的圖庫。圖庫是一個顯示水平滾動圖像列表的視圖。我們可以指定選擇圖庫中的圖像時要執行的操作。例如,我們可以使用ImageView控件顯示更大尺寸的所選圖像

        背景

        在示例應用程序中,我創建了一個包含固定圖像的Gallery。這些圖像將復制到res / drawable文件夾中。用戶可以水平滾動瀏覽所有圖像。單擊圖庫中的圖像會在ImageView控件中顯示圖像

        使用代碼

        來自res / drawable文件夾的圖像MainActivity.java文件中引用如下:

        Integer[] imageIDs =
                    {R.drawable.pic1, R.drawable.pic2, 
                     R.drawable.pic3, R.drawable.pic4, R.drawable.pic5, R.drawable.pic6, R.drawable.pic7};

        activity_main.xml文件中的以下代碼使用a創建一個線性布局TextViewGalleryImageView控制:

        <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        
            xmlns:app="http://schemas.android.com/apk/res-auto"
        
            xmlns:tools="http://schemas.android.com/tools"
        
            android:orientation="vertical"
        
            android:layout_width="match_parent"
        
            android:layout_height="match_parent"
        
            tools:context="com.example.azim.mygalleryapp.MainActivity">
            <TextView
        
                android:layout_width="wrap_content"
        
                android:layout_height="wrap_content"
        
                android:text="My Image Gallery"/>
            <Gallery
        
                android:id="@+id/mygallery"
        
                android:layout_marginLeft="15dp"
        
                android:layout_marginTop="25dp"
        
                android:layout_width="match_parent"
        
                android:layout_height="wrap_content"/>
            <ImageView
        
                android:id="@+id/myimage"
        
                android:layout_marginLeft="15dp"
        
                android:layout_marginTop="25dp"
        
                android:layout_width="330dp"
        
                android:layout_height="250dp"
        
                android:scaleType="fitXY" />
        </LinearLayout>

        res / values文件夾中添加一個名為attrs.xml文件,并在其中添加以下代碼:

        <?xml version="1.0" encoding="utf-8" ?>
        <resources>
            <declare-styleable name="MyGallery">
                <attr name="android:galleryItemBackground"/>
            </declare-styleable>
        </resources>

        GalleryMainActivity.java文件中檢索對象,如下所示:

        Gallery gallery = (Gallery) findViewById(R.id.mygallery);
        gallery.setAdapter(new ImageAdapter(this));
        gallery.setOnItemClickListener(this);

        在上面的代碼中,setAdapter()方法Gallery用于使用調用的內部類來指定庫的數據和數據格式ImageAdaptersetOnItemClickListener()當單擊庫中的圖像時,方法注冊要調用的回調方法。

        以下是ImageAdapter內部類的代碼

        public class ImageAdapter extends BaseAdapter
        {
             Context ctx;
             int itemBackground;
             public ImageAdapter(Context ctx)
             {
                 this.ctx = ctx;
                 TypedArray array = obtainStyledAttributes(R.styleable.MyGallery);
                 itemBackground = array.getResourceId
                 (R.styleable.MyGallery_android_galleryItemBackground, 0);
                 array.recycle();
             }
             public int getCount()
             {
                 return imageIDs.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=new ImageView(ctx);
                 imageView.setImageResource(imageIDs[position]);
                 imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                 imageView.setLayoutParams(new Gallery.LayoutParams(150,120));
                 imageView.setBackgroundResource(itemBackground);
                 return imageView;
             }
         }
        

        在上面的代碼中,ImageAdapter內部類是從BaseAdapter派生的在此類的構造函數中,使用該obtainStyledAttributes()方法檢索上下文主題中的樣式化屬性信息并將其存儲在TypedArray對象中。對象recycle()方法TypedArray用于由稍后的調用者重用該對象。getView()方法ImageView基于位置返回表示要在圖庫中顯示的圖像。setImageResource()方法將drawable設置為此內容ImageViewsetScaleType()方法指定圖像的大小和位置ImageViewsetLayoutParams()方法指定用于排列的布局參數ImageViewsetBackgroundResource()方法設置的背景ImageView

        以下onItemClick()方法是在Gallery中單擊圖像時調用的回調方法,它在ImageView對象中顯示所選圖像

        public void onItemClick(AdapterView adapterView,View view,int position,long id)
        {
            ImageView imageView=(ImageView)findViewById(R.id.myimage);
            imageView.setImageResource(imageIDs[position]);
        }

        以下是MainActivity.java文件的完整代碼

        package com.example.azim.mygalleryapp;
        
        import android.content.Context;
        import android.content.res.TypedArray;
        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.AdapterView;
        import android.widget.BaseAdapter;
        import android.widget.Gallery;
        import android.widget.ImageView;
        
        public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener
        {
            Integer[] imageIDs =
                    {R.drawable.pic1, R.drawable.pic2, R.drawable.pic3, 
                     R.drawable.pic4, R.drawable.pic5, R.drawable.pic6, R.drawable.pic7};
        
            @Override
            protected void onCreate(Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                Gallery gallery = (Gallery) findViewById(R.id.mygallery);
                gallery.setAdapter(new ImageAdapter(this));
                gallery.setOnItemClickListener(this);
            }
        
            public void onItemClick(AdapterView adapterView,View view,int position,long id)
            {
                ImageView imageView=(ImageView)findViewById(R.id.myimage);
                imageView.setImageResource(imageIDs[position]);
            }
        
            public class ImageAdapter extends BaseAdapter
            {
                Context ctx;
                int itemBackground;
                public ImageAdapter(Context ctx)
                {
                    this.ctx = ctx;
                    TypedArray array = obtainStyledAttributes(R.styleable.MyGallery);
                    itemBackground = array.getResourceId
                                     (R.styleable.MyGallery_android_galleryItemBackground, 0);
                    array.recycle();
                }
                public int getCount()
                {
                    return imageIDs.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=new ImageView(ctx);
                    imageView.setImageResource(imageIDs[position]);
                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                    imageView.setLayoutParams(new Gallery.LayoutParams(150,120));
                    imageView.setBackgroundResource(itemBackground);
                    return imageView;
                }
            }
        }

        以下是實際Android移動設備上的應用輸出:

        一款Android圖片庫應用程序demo開發詳解及源碼分享

        興趣點

        我希望這篇文章對于理解如何在Android中輕松創建圖庫應用程序非常有用。

        一款Android圖片庫應用程序demo開發詳解及源碼分享轉載http://www.rhcg.tw/appboke/38811.html
        標簽:網站源碼
        辽宁十一选五单双