1. 程式人生 > >Gallery實現幻燈片式的圖片瀏覽器

Gallery實現幻燈片式的圖片瀏覽器

佈局檔案如下:

<?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">

    <ImageSwitcher
        android:layout_width="320dp"
        android:layout_height="320dp"
        android:id="@+id/imageSwitcher"
        android:layout_marginTop="20dp"
        android:layout_gravity="center_horizontal"/>

    <Gallery
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/gallery"
        android:layout_marginTop="25dp"
        android:unselectedAlpha="0.6"
        android:spacing="3pt"
        android:layout_gravity="center_horizontal" />
</LinearLayout>

java程式碼如下:
package com.example.administrator.gallerytest;

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.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;

public class GalleryTest extends AppCompatActivity {
    int[] imageIds = new int[]{
            R.drawable.cat,//a picture about cat
            R.drawable.cherrytree,//a picture about cherrytree
            R.drawable.dog,//a picture about dog
            R.drawable.house,//a picture about house
            R.drawable.monkey,//a picture about monkey
            R.drawable.mountriver,//a picture about mount and river
            R.drawable.rabbit,//a picture about rabbit
            R.drawable.yellowflowers,//a picture about yellow flowers
            R.drawable.tree,//a picture about tree
            R.drawable.dragon,//a picture about dragon
            R.drawable.wolf,//a picture about wolf
            R.drawable.eagle,
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final Gallery gallery = (Gallery)findViewById(R.id.gallery);
        //獲取顯示圖片的ImageSwitcher物件
        final ImageSwitcher switcher = (ImageSwitcher)findViewById(R.id.imageSwitcher);
        //為ImageSwitcher物件設定ViewFactory物件
        switcher.setFactory(new ViewSwitcher.ViewFactory() {
            @Override
            public View makeView() {
                ImageView imageView = new ImageView(GalleryTest.this);
                //影象檢視,用於支援 HTML <IMG> 標記。
                // 支援通過標記的 HEIGHT 和 WIDTH 屬性進行縮放。如果不能載入影象,
                // 則將呈現任何通過 ALT 屬性指定的文字。
                imageView.setBackgroundColor(0xff0000);
                imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT));
                return imageView;
            }
        });
        //設定圖片更換的動畫效果
        switcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
        switcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
        //建立一個BaseAdapter物件,該物件負責提供Gallery所顯示的每張圖片
        BaseAdapter adapter = new BaseAdapter() {
            //data source(資料來源)<------>adapter(介面卡)<------>listview(檢視控制元件)
            @Override
            public int getCount() {
                return imageIds.length;
            }

            @Override
            public Object getItem(int i) {
                return i;
            }

            @Override
            public long getItemId(int i) {
                return i;
            }
            //該方法返回的View就代表了每個列表項
            @Override
            public View getView(int i, View view, ViewGroup viewGroup) {
                //建立一個imageView
                ImageView imageView = new ImageView(GalleryTest.this);
                imageView.setImageResource(imageIds[i % imageIds.length]);
                //設定ImageView的縮放型別
                imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                //把圖片按照指定的大小在View中顯示,拉伸顯示圖片,不保持原比例,
                // 全部顯示圖片填滿View.關鍵字:不保持比例,拉伸顯示全圖,填滿ImageView
                imageView.setLayoutParams(new Gallery.LayoutParams(75, 100));
                TypedArray typedArray = obtainStyledAttributes(R.styleable.Gallery);//??????
                imageView.setBackgroundResource(typedArray.getResourceId(
                        R.styleable.Gallery_android_galleryItemBackground, 0));
                return imageView;
            }
        };
        gallery.setAdapter(adapter);
        gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                switcher.setImageResource(imageIds[i % imageIds.length]);
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });
    }
}

圖片都是自己找的,放到drawable資料夾下面。

AVD執行結果:



相關推薦

Gallery實現幻燈片式圖片瀏覽器

佈局檔案如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andr

Gallery和ImageSwitcher ---------- 製作圖片瀏覽器

Gallery和ImageSwitcher Gallery 設定資料來源,Gallery 佈局; 例項化 gallery; 自定義 ImageAdapter 圖片介面卡,並完成介面卡的成員方法;

用CSS實現圖片幻燈片式的切換(所有圖片輪流顯示,每次顯示一張)

HTML 部分<div id="img-wrap"> <img src="img/1.jpg"> <img src="img/2.jpg"> <img src="img/3.jpg"> <i

王立平--Gallery:實現圖片的左右滑動

nts mage let warn relative too state roi group <span style="font-size:18px;color:#330033;">package com.main; i

畫廊選中放大圖片效果(Gallery實現

自己的專案需要做一個圖片瀏覽效果,滑動到當前圖片,則放大,其餘都縮小。雖然Gallery已經過時了,但是以前一直沒有使用過,所以特地嘗試一下。後續還打算使用ViewPager,還有RecyclerView實現一把。 先上個效果圖 佈局程式碼 <?xml version="

Android 關於簡單圖片瀏覽器實現

介面設計:XML <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     x

android:使用gallery和imageSwitch製作可左右迴圈滑動的圖片瀏覽器

為了使圖片瀏覽器左右無限迴圈滑動 我們要自定義gallery的adapter 如果要想自定義adapter首先要了解這幾個方法 @Override public int getCount() { // TODO Auto-generated method stub

Android ViewPager實現圖片瀏覽器

Android ViewPager實現圖片瀏覽器 一、目標 二、體驗地址 三、方案選擇 四、PageTransformer 五、剪裁控制元件 六、ClipPageTransformer 七、Final

JAVA實現客戶端圖片上傳至伺服器(SSM)(不使用input 標籤使用,瀏覽器圖片直接上傳伺服器)

JAVA實現客戶端圖片上傳至伺服器(SSM)(不使用input 標籤使用,瀏覽器圖片直接上傳伺服器) 這是本人第一篇部落格 想著記錄一下平時學習的過程,也提供給和我一樣正在學習java的同學們!!(如果有不懂的同學歡迎留言 有時間一定回覆,寫的不好的地方請多包涵) * 開始: 首先要

android圖片瀏覽器(一)——ImageSwitcher和Gallery

主要實現的功能就是瀏覽圖片。 用到的控制元件:ImageSwitcher和Gallery。 這種簡單的圖片瀏覽器google一下有很多,我也是參考別人上寫的。在搜尋的過程中,我發現了一個比較有意思的事情,就是很多部落格裡面的程式碼基本上都是相同的,而且執行起來都有錯誤。呵

JFrame實現無邊框,實現拖動,實現關閉按鈕,開啟實現儲存檔案到本地,實現頭像放大功能,實現圖片瀏覽器

package SwingTest3; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.even

基於asp.net + easyui框架,js實現上傳圖片之前判斷圖片格式,同時實現預覽,相容各種瀏覽器+下載

        最近在做圖片上傳的一個前臺頁面,上傳圖片功能雖然很簡單,但是需要我們學習的地方很多。在上傳圖片之前驗證圖片的格式,並同時實現預覽。這篇部落格我們就用一段簡單的js程式碼來實現驗證圖片格式,並同時預覽的功能。 html頁面 <div> 選

ImageViewer:打造萬能圖片瀏覽器,輕鬆實現微信朋友圈、今日頭條、橫向列表、縱向列表等圖片瀏覽效果

ImageViewer 關於 圖片預覽器,支援圖片手勢縮放、拖拽等操作,自定義View的模式顯示,自定義圖片載入方式,更加靈活,易於擴充套件,同時也適用於RecyclerView、ListView的

android自定義Gallery實現手動和自動迴圈滾動切換圖片

實現類似騰訊視訊頂欄的圖片切換,網上找了下寫的都不全,現在總結下我實現過程中遇到的問題: 第一個問題:Gallery手動滑動翻頁 參照網上的方法實現如下:   自定義MyGalleyry繼承自Gallery  重寫onFling方法 private boolean isScrollingLeft(Motio

圖片瀏覽器功能的實現(一)——圖片放大與縮小功能實現

圖片瀏覽在應用中是一種比較常用的功能,主要包括圖片的放大、縮小、旋轉、上下左右移動圖片。LZ花了一天時間實現了一下這些功能,希望能夠幫到閱讀此部落格的碼農們。 先把前期工作準備一下,建立一個UWP專案。頁面程式碼如下(PS:很簡單就不囉嗦了,直接把程式碼貼出來

基於圖像切換器(imageSwitcher)的支持動畫的圖片瀏覽器

畫的 err ger into back 布局 列表項 wid left 利用GridView和ImageSwitcher的基本用法 public class MainActivity extends Activity { int[] imageI

JS教程之實現加載圖片時百分比進度

scrip 計算 show || microsoft resp fire open func 思路:思路其實很簡單,ajax執行時,會生成一個event對象,其中會包含要加載的文件的大小和當前已經加載完成部分的大小,通過這兩個值即可計算出百分比 事件介紹onprogress

ASP.NET Core 簡單實現七牛圖片上傳(FormData 和 Base64)

private stream public 圖片 ASP.NET Core 簡單實現七牛圖片上傳(FormData 和 Base64)七牛圖片上傳 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/1237/csharpUpoladServic

Glide實現查看圖片和保存圖片到手機

查看圖片 otf asynctask tlist bitmap ready env pic blank 兩種方式, 推薦方式一 方式一 downloadOnly 創建一個 ImageActivity public class ImageActivity exte

實現點擊圖片不同區域響應不同的事件

位置 轉換 unit 點擊 yun 單元 cgpoint use float 最近有一個遙控器的項目, 需要實現點擊圖片上指定位置響應不同事件 圖片如下: 大概目的是點擊圖片上的溫度可以直接改變空調溫度 大概思路就是先通過gesture獲取點擊的點坐標, 然後對坐標做處