1. 程式人生 > >在輪播圖中進行新增點選事件

在輪播圖中進行新增點選事件

當點選輪播圖的時候,輪播圖需要停止輪播;

點選完成之後輪播圖可以繼續自動輪播;

點選輪播圖將資料裡面的title進行吐司;

當用手指滑動輪播圖的時候,輪播圖可以跟隨手指進行滑動,停止自動輪播;當手指離開之後輪播自動繼續

只需要在給輪播圖設定載入圖片的時候新增

public class MyVpAdapter extends PagerAdapter {

    //資料來源
    private List<ImageData.DataBean> data;
    //上下文物件
    private Context context;

    private DisplayImageOptions options;
    //傳送訊息的handler
    private Handler mhandler;

    public MyVpAdapter(List<ImageData.DataBean> data, Context context,Handler handler) {

        this.data = data;
        this.context = context;
        this.mhandler=handler;
        this.options=new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用記憶體快取
                .cacheOnDisk(true)//使用磁碟快取
                .showImageOnLoading(R.mipmap.ic_launcher)//設定正在下載的圖片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//url為空或請求的資源不存在時
                .showImageOnFail(R.mipmap.ic_launcher)//下載失敗時顯示的圖片
                .bitmapConfig(Bitmap.Config.RGB_565)//設定圖片色彩模式  1px=2個位元組  ARGB_8888 1px=4個位元組   ARGB_4444 1px=2個位元組  ALPHA_8 1px=1個位元組
                .imageScaleType(ImageScaleType.EXACTLY)//設定圖片的縮放模式
                .build();
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, final int position) {
        ImageView imageView=new ImageView(context);
        //設定圖片縮放模式
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        //下載圖片
        ImageLoader.getInstance().displayImage(data.get(position%data.size()).getIcon(),imageView,options);

        //設定點選事件
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(context,data.get(position%data.size()).getTitle(),Toast.LENGTH_SHORT).show();

            }
        });

        //設定觸控監聽事件
        imageView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                switch (motionEvent.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        //移除所有的訊息,不再自動輪播
                        mhandler.removeCallbacksAndMessages(null);
                        break;
                    case MotionEvent.ACTION_MOVE:
                        mhandler.removeCallbacksAndMessages(null);
                        break;
                    case MotionEvent.ACTION_UP:
                        //再次傳送訊息
                        mhandler.sendEmptyMessageDelayed(0,1000);
                        break;
                    case MotionEvent.ACTION_CANCEL:
                        //再次傳送訊息
                        mhandler.sendEmptyMessageDelayed(0,1000);
                        break;
                }
                //true:自己消費此事件,不再向上傳遞  false:自己不處理,向上傳遞
                return false;
            }
        });
        container.addView(imageView);
        return imageView;


    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        //super.destroyItem(container, position, object);
        container.removeView((View)object);
    }
}

相關推薦

進行新增事件

當點選輪播圖的時候,輪播圖需要停止輪播;點選完成之後輪播圖可以繼續自動輪播;點選輪播圖將資料裡面的title進行吐司;當用手指滑動輪播圖的時候,輪播圖可以跟隨手指進行滑動,停止自動輪播;當手指離開之後輪播自動繼續只需要在給輪播圖設定載入圖片的時候新增public class

小圓點可

public class MainActivity extends AppCompatActivity {     private ViewPager viewPager;     private Handler handler = new Handler(){      

安卓,無限自動輪,可手動滑動+事件

                                          &nb

帶粘性效果的小

輪播圖中我們經常會看到帶有粘性效果的小點,先看效果圖: 我們看頂部輪播圖左右滑動時,其聯動的小點也跟著一起滑動,但是這裡的小點改變時會有粘性的效果。今天我們就看下這個效果。 小點的實現是通過自定義實現的,看下程式碼: public class MaterialIndic

CSS——的箭頭

輪播 arr one png color meta margin ack tex 註意事項: 1、定位中left權重比right高,top權重比bottom高 2、兩個span標簽嵌套在一個盒子中,將來顯示隱藏只需要控制父盒子就行了 <!DOCTYPE html&g

Flutter自定義折線新增事件

前言 最近用Flutter做了一個天氣類的app,我也是新手,對flutter理解還不是很深入,但是開發過程中的程式設計思想給了我很大的啟發。Dart語言特性很優秀,單執行緒模型,非同步io,初始化列表,函式也是物件,鏈式呼叫等等,flutter的設計思想很前衛。好了,馬屁只拍到這裡,下面講一下在開發過程中

獲取場景的所有按鈕,並新增事件

void Start() {//初始化時 獲取 所有按鈕新增監聽 Addlisteningevent(); } public void Addlisteningevent() {//查詢所有按鈕 Button[] allObj =

[Swift通天遁地]一、超級工具-(1)動態標籤:給UILabel文字的Flag和url新增事件

本文將演示動態標籤的使用,它允許使用者在標籤上進行互動操作。 點選【Podfile】,檢視安裝配置檔案。 1 platform :ios, '8.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://githu

Android框架之路——Banner實現(RecyclerView新增Header)

一、簡介 Banner能實現迴圈播放多個廣告圖片和手動滑動迴圈等功能。因為原生ViewPager並不支援迴圈翻頁, 要實現迴圈還得需要自己去動手。Banner框架可以進行不同樣式、不同動畫設定, 以及完善的api方法能滿足大部分軟體首頁輪播圖效果的需求。

js迴圈遍歷ulli的事件,給給選中li新增css

功能:對於一個ul中固定的li個數,當點選其中一個li時,改變選中li的顏色;同時改變對應的另一個ul中li的顏色頁面初始化的介面:HTML: <div > <label>其他推薦:</lab

關於jquery事件,每一次執行的效果就疊加一次,click是新增事件的意思

我本人還是前端的菜鳥,所以一般在寫特效的時候,喜歡用jquery,但是在用jquery的點選事件中,點選後改變容器中的內容,但是發現每點一次就顯示一個內容,點幾次就有幾個。jquery中 的點選事件,每點一次執行的效果就疊加一次,click是新增點選事件的意思。那麼來解決這

AndroidWebView載入Html的圖片新增事件

    基本的思路: (1)WebView來載入HTML。 (2)向HTML中注入JavaScript,利用JavaScript來呼叫Android中的方法(執行一些跳轉的操作等等)。  首先你必須有一個HTML或者是一個地址,或者是存到本地的一個檔案。我這裡使用的是存到本

計算數字的一個小技巧

最近公司專案中用到了輪播圖,由於公司職責分離,靜態頁面已經寫好了,我只需要負責使用vue新增互動效果即可。我得到的DOM結構如下: <ul> <li class="banner-prev"> <div cl

iOS為view新增事件

UITapGestureRecognizer *ui=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(alickLi

div迴圈生成button並新增事件

回看剛剛學習js的博文,頁面迴圈生成節點是頁面最基礎的操作之一。 要讓頁面顯示效果,必然在頁面新增dom元素!如果想要多個button,那麼迴圈新增必不可少。 首先定義div: <div id="people" style="border: groo

在UIView新增事件oc及swift

UIView繼承於UIResponder是沒有addTarget 方法的,所有隻能在UIView上新增手勢UITapGestureRecognizer來實現點選事件。 首先設定UIView(或其子類)為可互動的: oc: iconView.userIn

react native使用react-native-viewpager實現的商品展示新增事件

對於android,react-native-viewpager這個第三方實現商品展示很好用 <ViewPager dataSource={this.state.adDataSource}

listview給每個item新增事件

給listview每個item新增點選事件,這個聽起來好像挺迷糊的,在adapter裡面我直接就寫startactivity後來沒成功,為此研究了幾分鐘發現有三種方式實現哈。現在說一下我的解決方法。1、在activit

JS使用for迴圈新增事件時,獲取i值及引數異常原因及解決辦法

遇見此問題,程式碼檢查了n次都沒毛病,但是卻出現下述問題, 坑了我好久,原來是這個原因,記錄避坑! PS這是js的處理方法, 在jquery中直接用each遍歷元素繫結點選事件即可避免 $('#id').each(function(i){ $(this).click(

關於html a標籤新增事件的方法總結

我們常用的在a標籤中有點選事件: 1. a href="javascript:js_method();" 這是我們平臺上常用的方法,但是這種方法在傳遞this等引數的時候很容易出問題,而且javascript:協議作為a的href屬性的時候不僅會導致不必要的觸發wind