国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

AndroidImageSlider實現炫酷輪播廣告效果

2019-10-22 18:28:53
字體:
來源:轉載
供稿:網友

本文實例為大家分享了AndroidImageSlider實現炫酷輪播廣告的具體代碼,供大家參考,具體內容如下

Android,ImageSlider,輪播廣告

本文為菜鳥窩作者劉婷的連載。”商城項目實戰”系列來聊聊仿”京東淘寶的購物商城”如何實現。

AndroidImageSlider 是一個神奇而且方便的 Android 圖片滾動框架,在菜鳥商城項目中我們就要使用這個框架來實現炫酷的輪播廣告。

AndroidImageSlider 架構分析

首先我們看圖說話,下面是 AndroidImageSlider 的架構分析圖。

Android,ImageSlider,輪播廣告

該架構分析圖中的 SliderLayout 是一個繼承于 RelativeLayout 的自定義View,也是該框架的核心。它由 SliderView 和 PagerIndicator 組成。而 SliderView 分為了 DefaultSliderView 和 TextSliderView 兩部分,其中 DefaultSliderView 是只支持圖片加載滾動,而 TextSliderView 不僅支持圖片還支持文本的顯示。Transition effects 和Animation 主要是動畫效果的控制,另外還有兩個重要的監聽事件分別為 onSliderClickListener 和 onPageChangeListener,顧名思義,一個是點擊事件監聽,另一個是頁面切換事件監聽。

基本使用

已經了解了框架的基本構造,下面就是要看如何使用了,使用的方法也很簡單。

1. Gradle 依賴配置

我們這里使用的是 android Studio 2.2.3 開發工具,Eclipse 引用第三方庫的具體方法可以參考AndroidImageSlider 源碼說明。在 build.gradle 文件中集成第三方庫的依賴。

xmldependencies { compile 'com.daimajia.slider:library:1.1.5@aar' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.nineoldandroids:library:2.4.0' compile 'com.android.support:support-v4:25.2.0'}

2. 添加權限

使用該框架還需要添加相應的權限,分別為網絡權限和讀文件的權限。

xml<uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>

3. 添加到布局 Layout 中

將 SliderLayout 添加到相應的布局文件 Layout 中。

xml<com.daimajia.slider.library.SliderLayout android:id="@+id/home_slider_ad" android:layout_width="match_parent" android:layout_height="@dimen/large_height"></com.daimajia.slider.library.SliderLayout>

如果需要自定義的 PagerIndicator 的話,可以自定義,當然也可以使用該框架自帶的,這里是自定義 PagerIndicator 的源碼。

xml<com.daimajia.slider.library.Indicators.PagerIndicator  android:id="@+id/home_indicator_ad"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:gravity="center"  custom:selected_color="#0095BF"  custom:unselected_color="#55333333"  custom:selected_drawable="@drawable/bird"  custom:shape="oval"  custom:selected_padding_left="5dp"  custom:selected_padding_right="5dp"  custom:unselected_padding_left="5dp"  custom:unselected_padding_right="5dp"  android:layout_centerHorizontal="true"  android:layout_alignParentBottom="true"  custom:selected_width="6dp"  custom:selected_height="6dp"  custom:unselected_width="6dp"  custom:unselected_height="6dp"  android:layout_marginBottom="20dp"> </com.daimajia.slider.library.Indicators.PagerIndicator>

4. 在 Activity/Fragment 中定義以及配置 SliderLayout

首先就是要獲取到 SliderLayout 控件以及自定義的 Indicator。

xmlmSlider = (SliderLayout) view.findViewById(R.id.home_slider_ad);indicator =(PagerIndicator)view.findViewById(R.id.home_indicator_ad);

然后就是準備好測試的數據,我在這里定義了一個實體類 BannerInfo,包括了圖片 imgUrl 和描述內容 name。定義好實體類后就開始設置相應的測試數據并且添加到滾動圖片列表 listBanner 中。

xmlprivate void getBannerData() { BannerInfo bannerInfo_01 = new BannerInfo(); bannerInfo_01.setName("音箱狂歡"); bannerInfo_01.setImgUrl("http://7mno4h.com2.z0.glb.qiniucdn.com/5608f3b5Nc8d90151.jpg"); BannerInfo bannerInfo_02 = new BannerInfo(); bannerInfo_02.setName("手機國慶禮"); bannerInfo_02.setImgUrl("http://7mno4h.com2.z0.glb.qiniucdn.com/5608eb8cN9b9a0a39.jpg"); BannerInfo bannerInfo_03 = new BannerInfo(); bannerInfo_03.setName("IT生活"); bannerInfo_03.setImgUrl("http://7mno4h.com2.z0.glb.qiniucdn.com/5608cae6Nbb1a39f9.jpg"); listBanner.add(bannerInfo_01); listBanner.add(bannerInfo_02); listBanner.add(bannerInfo_03); }

接下來就是要配置 SliderLayout 的相關屬性了,添加自定義的 Indicator,設置動畫效果,添加圖片列表數據以及設置監聽事件

xmlprivate void initSlider() { if (listBanner != null) {  for (BannerInfo bannerInfo : listBanner) {  TextSliderView textSliderView = new TextSliderView(this.getActivity());  textSliderView.image(bannerInfo.getImgUrl())   .description(bannerInfo.getName())   .setScaleType(BaseSliderView.ScaleType.CenterCrop)   .setOnSliderClickListener(this);  mSlider.addSlider(textSliderView);  } } mSlider.setCustomIndicator(indicator); mSlider.setCustomAnimation(new DescriptionAnimation()); mSlider.setPresetTransformer(SliderLayout.Transformer.RotateUp); mSlider.setDuration(3000); mSlider.addOnPageChangeListener(this); }

5. 在onStop() 中停止 SliderLayout 滾動

在 Activity/Fragment 生命周期結束前,需要先停止圖片的滾動,防止出現內存溢出等問題。

xml@Override public void onStop() { // To prevent a memory leak on rotation, make sure to call stopAutoCycle() on the slider before activity or fragment is destroyed mSlider.stopAutoCycle(); super.onStop(); }

最終效果

運行代碼,效果圖如下。

Android,ImageSlider,輪播廣告

AndroidImageSlider 的更多使用方法和功能介紹請參考AndroidImageSlider 源碼說明。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大安市| 新巴尔虎右旗| 湟源县| 封丘县| 金塔县| 泰安市| 靖江市| 满城县| 赞皇县| 乐安县| 会泽县| 舒城县| 永泰县| 宾阳县| 清水县| 安达市| 临邑县| 北宁市| 册亨县| 宜宾市| 延吉市| 赞皇县| 库尔勒市| 监利县| 双鸭山市| 德昌县| 舞钢市| 和平县| 乐业县| 铜梁县| 五莲县| 肥城市| 多伦县| 永济市| 神木县| 南靖县| 大足县| 江达县| 革吉县| 临潭县| 海原县|