1. 程式人生 > >Android 基於ImageSwitcher實現的左右切換圖片

Android 基於ImageSwitcher實現的左右切換圖片

左右切換圖片控制元件大家都用ViewPager, ViewFipper比較多吧,我之前也用ViewPager實現了,有興趣的可以去看下,今天介紹的是基於ImageSwitcher實現的左右切換圖片,先上截圖吧


好了,接下來來看程式碼吧,第一張圖是一個GridView,點選item跳轉到第二個介面,第一個介面可以忽略,主要是講解ImageSwitcher的左右卻換圖片,先看佈局檔案

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="fill_parent"
  4.     android:layout_height="fill_parent">
  5.     <ImageSwitcher
  6.         android:id="@+id/imageSwitcher1"
  7.         android:layout_width="fill_parent"
  8.         android:layout_height="fill_parent">
  9.     </ImageSwitcher>
  10.     <RelativeLayout
  11.         android:layout_width
    ="fill_parent"
  12.         android:layout_height="wrap_content"
  13.         android:orientation="vertical">
  14.         <LinearLayout
  15.             android:id="@+id/viewGroup"
  16.             android:layout_width="fill_parent"
  17.             android:layout_height="wrap_content"
  18.             android:layout_alignParentBottom
    ="true"
  19.             android:layout_marginBottom="30dp"
  20.             android:gravity="center_horizontal"
  21.             android:orientation="horizontal">
  22.         </LinearLayout>
  23.     </RelativeLayout>
  24. </FrameLayout>
然後就是Activity程式碼啦,總體來說比較簡單,程式碼我添加了註釋
  1. package com.example.photoalbum;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.view.MotionEvent;  
  5. import android.view.View;  
  6. import android.view.View.OnTouchListener;  
  7. import android.view.ViewGroup;  
  8. import android.view.animation.AnimationUtils;  
  9. import android.widget.ImageSwitcher;  
  10. import android.widget.ImageView;  
  11. import android.widget.LinearLayout;  
  12. import android.widget.RelativeLayout.LayoutParams;  
  13. import android.widget.Toast;  
  14. import android.widget.ViewSwitcher.ViewFactory;  
  15. publicclass ShowPhotoActivity extends Activity implements ViewFactory, OnTouchListener{  
  16.     /** 
  17.      * ImagaSwitcher 的引用 
  18.      */
  19.     private ImageSwitcher mImageSwitcher;  
  20.     /** 
  21.      * 圖片id陣列 
  22.      */
  23.     privateint[] imgIds;  
  24.     /** 
  25.      * 當前選中的圖片id序號 
  26.      */
  27.     privateint currentPosition;  
  28.     /** 
  29.      * 按下點的X座標 
  30.      */
  31.     privatefloat downX;  
  32.     /** 
  33.      * 裝載點點的容器 
  34.      */
  35.     private LinearLayout linearLayout;  
  36.     /** 
  37.      * 點點陣列 
  38.      */
  39.     private ImageView[] tips;  
  40.     @Override
  41.     protectedvoid onCreate(Bundle savedInstanceState) {  
  42.         super.onCreate(savedInstanceState);  
  43.         setContentView(R.layout.show_photo);  
  44.         imgIds = newint[]{R.drawable.item01,R.drawable.item02,R.drawable.item03,R.drawable.item04,  
  45.                 R.drawable.item05, R.drawable.item06, R.drawable.item07, R.drawable.item08,R.drawable.item09,  
  46.                 R.drawable.item10, R.drawable.item11, R.drawable.item12};  
  47.         //例項化ImageSwitcher
  48.         mImageSwitcher  = (ImageSwitcher) findViewById(R.id.imageSwitcher1);  
  49.         //設定Factory
  50.         mImageSwitcher.setFactory(this);  
  51.         //設定OnTouchListener,我們通過Touch事件來切換圖片
  52.         mImageSwitcher.setOnTouchListener(this);  
  53.         linearLayout = (LinearLayout) findViewById(R.id.viewGroup);  
  54.         tips = new ImageView[imgIds.length];  
  55.         for(int i=0; i<imgIds.length; i++){  
  56.             ImageView mImageView = new ImageView(this);  
  57.             tips[i] = mImageView;  
  58.             LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,      
  59.                     LayoutParams.WRAP_CONTENT));    
  60.             layoutParams.rightMargin = 3;  
  61.             layoutParams.leftMargin = 3;  
  62.             mImageView.setBackgroundResource(R.drawable.page_indicator_unfocused);  
  63.             linearLayout.addView(mImageView, layoutParams);  
  64.         }  
  65.         //這個我是從上一個介面傳過來的,上一個介面是一個GridView
  66.         currentPosition = getIntent().getIntExtra("position"0);  
  67.         mImageSwitcher.setImageResource(imgIds[currentPosition]);  
  68.         setImageBackground(currentPosition);  
  69.     }  
  70.      /**  
  71.      * 設定選中的tip的背景  
  72.      * @param selectItems  
  73.      */
  74.     privatevoid setImageBackground(int selectItems){    
  75.         for(

    相關推薦

    Android 基於ImageSwitcher實現左右切換圖片

    左右切換圖片控制元件大家都用ViewPager, ViewFipper比較多吧,我之前也用ViewPager實現了,有興趣的可以去看下,今天介紹的是基於ImageSwitcher實現的左右切換圖片,先上截圖吧 好了,接下來來看程式碼吧,第一張圖是一個

    Android 使用ViewPager實現左右迴圈滑動圖片

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    android基於Activity共享元素切換效果的實現

    先上一張效果圖: 主要用到的類有: android.support.v4下的三個類: ActivityOptionsCompat,    ActivityCompat,    ViewCompat 這三個類的主要作用就是 適配不同的android版本,    即使是在不支

    Android基於RecyclerView實現高亮搜索列表

    新生代 gil char 能力 hub != AD listview 主動 這篇應該是RecycleView的第四篇了,RecycleView真是新生代的寵兒能做這麽

    Android程序中實現中英文切換

    等等 andro director 選擇 單詞 and 之前 rect local 一開始項目沒有考慮到英文切換這是一個很不好的開始。等到項目基本完成之後才意識到要中英文都支持。 最好是在項目開始之前規劃好UI布局等等,畢竟一個英文單詞的占空比漢字要長的很多,最後填英文的

    Android使用ViewPager實現左右迴圈滑動及輪播效果

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    Android Fragment+Viewpager實現左右滑動和點選 實現DrawerLayout

    xml佈局程式碼: <android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android” xmlns:app=“http://schemas.androi

    安卓第三天---ViewPager控制元件實現滑動切換圖片

    先不說那麼多,給個圖片表示成功! 這是兩張圖片切換時截的圖,不是錯誤喲! 首先上佈局程式碼: mian_activity.xml佈局檔案(csdn的xml檔案顯示有問題“<”符號,在不顯示的地方我就用“《"代替了,請諒解) <?xml version="1.0" encod

    Android 輪播圖Banner切換圖片的效果

    Android XBanner使用詳解 2018年03月14日 08:19:59 AND_Devil 閱讀數:910   前言:現如今的很多APP都

    android基於註解實現類似spring服務端框架

    用過spring或Retrofit的人都知道實現函式和http請求的繫結和解耦非常方便,這裡分享一下基於NanoHttpd實現的簡單註解框架。 第一步定義註解類: //http控制類,被該註解的類用來處理http請求 @Retention(RetentionPo

    java基於jsoup實現簡單的圖片爬蟲並下載

    2018年11月04日 17:20:32 小小申 閱讀數:4 標籤: jsoup java

    android 使用ViewFlow實現左右滑動

    是的,你沒看錯,是ViewFlow,不是ViewPager,也不是ViewFlipper。ViewFlow是一個開源的androidUI庫。它提供了三個元件ViewFlow、FlowIndicator和TitleFlowIndicator。它使得由Adapter產生的ViewGroup中的View可以水

    Android中RecyclerView實現瀑布流圖片顯示

    效果圖: 具體程式碼如下:(註釋很詳細,基本每句都要註釋) MainActivity.java package com.zhiyuan3g.recyclerviewwaterfall; import android.content.Intent; import an

    vue中實現簡單切換圖片效果

    例項: 實現大於三張圖片時,點選箭頭圖片切換,並有箭頭置灰不可操作。 html <div class="summary"> <div class="gallery"> <div class="product-img">

    android配置profile實現環境切換

    配置app--build.gradle def env = System.getProperty("profile") ?: "test" sourceSets {

    Android 基於RecyclerView實現批量操作

    程式碼很簡單,就是對Item的根據局添加了單擊,長按,checkbox的單擊事件,利用介面回撥將事件傳遞到Activity主介面。可以看到在checkbox的單擊事件中,我們根據當前checkbox的選中狀態對實體類的isSelect進行賦值,儲存下當前的狀態,避免複用帶來的多選問題。 (2)實體類: (3

    Android之---RecycleView實現簡單的圖片檢視功能(類似相簿檢視器)

    RecycleView實現簡單的圖片檢視功能(類似相簿檢視器) 效果圖 自定義PreviewRecycleView繼承自RecycleView public class PreviewRecycleView extends Recycler

    Android基於Dialog實現載入框

    先給大家看個效果圖! 首先就是新建一個dialog的XML檔案了 [html] view plain copy print? <?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:an

    基於canvas實現波浪式繪製圖片

    寫在最前 本次的分享是一個基於canvas的更新圖片特效實現。其中主要涉及canvas中getImageData()、putImageData()、toDataURL()方法的使用。效果請看下面。 歡迎關注我的部落格,不定期更新中—— PS:請在本地伺服器中開啟頁面,因谷歌瀏覽器中會有跨域問題,如需node

    Android使用程式碼實現左右半圓的按鈕背景

    即使得到本人許可,也不許轉載! 其實特別簡單,用xml寫一個shape,把radius寫一個特別大的值即可,比如100dp,總之肯定比你的按鈕最大值大就可以。 下面是效果圖 xml程式碼如下: