1. 程式人生 > >android系列微談一之——仿微信6.0左右滑動漸變切換效果

android系列微談一之——仿微信6.0左右滑動漸變切換效果

[java] view plaincopyprint?
  1. <pre name="code"class="java">  

----------------------------------------------------------------------------------------------------------介紹:BottomMenuSlideGradientSwipe是一個仿微信6.0左右滑動漸變切換效果的demo,特分享與大家探討郵箱:[email protected] QQ:190951132GitHub賬戶:lijunhuayc[目前上面只有一個自己寫的自定義AlertDialog對話方塊,有興趣的朋友可以看一下,當然肯定沒得前段時間出來的那個專門的動畫對話方塊好哈]群裡很多網友多次討論過新版微信6.0的滑動漸變導航[底部選單漸變切換]的效果怎麼做的,今兒個空了在網上搜了一下,幾乎沒搜到啥有用資訊,唯獨有一個說的是用高斯函式對圖片進行漸變顯隱藏[通過透明度],但這並不能達到效果。你是不是也想知道微信開發者是怎麼實現的呢?那麼請往下看……

針對於此問題,我特地自己來實現此效果。

先看效果圖:

  

內容左右滑動我們可以用很成功的JazzyViewPager來實現,它自帶多種動畫,其中有一個方法animateFade()就是控制漸變的,但它受到一個屬性mFadeEnabled的影響,所以初始化的時候要確保mFadeEnabled屬性

的值為true

首先介紹一下使用到的開源庫

master-JazzyViewPager主要就是用滑動漸變的viewpager

NineOldAndroids-library超經典的一個動畫庫

----------------------------------------------------------------------------------------------------------

eclipse新建一個專案BottomMenuSlideGradientSwipe

1因為此實現需要修改一點點JazzyViewpager類的原始碼,所以這裡引用方式是直接將master-JazzyViewPager下的所有資原始檔和類檔案拷貝到專案對應目錄下

注意:jazzyviewpager的資源有好幾個attrs.xmlcolor.xmlstrings.xml 這幾個都別忘記了

2將NineOldAndroids-library的jar檔案拷貝到libs目錄下

3新建一個類MainActivity繼承自Activity

先看看佈局檔案

----------------------------------------------------暫停了一下,唉,開始錯了點小錯誤,現在搞定了。完美執行perfect---------哇咔咔咔咔-----------------------------------

先看佈局檔案:

activity_main.xml

[java] view plaincopyprint?
  1. <pre name="code"class="java"><span style="font-family: Arial, Helvetica, sans-serif;"><TabHost xmlns:android="http://schemas.android.com/apk/res/android"</span>  
[java] view plaincopyprint?
  1. android:id="@android:id/tabhost"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent" >  
  4. <LinearLayout  
  5.     android:layout_width="match_parent"
  6.     android:layout_height="match_parent"
  7.     android:orientation="vertical" >  
  8.     <FrameLayout  
  9.         android:id="@android:id/tabcontent"
  10.         android:layout_width="match_parent"
  11.         android:layout_height="0dp"
  12.         android:layout_weight="1"
  13.         android:background="#FFFFFF"
  14.         android:visibility="gone" >  
  15.     </FrameLayout>  
  16.     <com.jfeinstein.jazzyviewpager.JazzyViewPager  
  17.         xmlns:app="http://schemas.android.com/apk/res/com.ycg.bottommenuslidegradientswipe"
  18.         android:id="@+id/jazzyPager"
  19.         app:style="standard"
  20.         android:layout_width="match_parent"
  21.         android:layout_height="0dp"
  22.         android:layout_weight="1" />  
  23.     <TabWidget  
  24.         android:id="@android:id/tabs"
  25.         android:layout_width="match_parent"
  26.         android:layout_height="50dp"
  27.         android:background="@drawable/main_tabwidget_background"
  28.         android:visibility="visible" />  
  29. </LinearLayout>  
  30. /TabHost>  

說明:將tabhost用於顯示內容的framelayout隱藏掉,然後用一個viewpager來代替 [此處用的是開源的 JazzyViewPager ,它自帶很多滑動動畫]

main_tabwidget_layout.xml

[html] view plaincopyprint?
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:padding="5dp">
  6.     <LinearLayout
  7.         android:id="@+id/normalLayout"
  8.         android:layout_width="match_parent"
  9.         android:layout_height="match_parent"
  10.         android:gravity="center"
  11.         android:orientation="vertical">
  12.         <ImageView
  13.             android:id="@+id/normalImg"
  14.             android:layout_width="wrap_content"
  15.             android:layout_height="wrap_content"
  16.             android:src="@drawable/scan_book"/>
  17.         <TextView
  18.             android:id="@+id/normalTV"
  19.             android:layout_width="wrap_content"
  20.             android:layout_height="wrap_content"
  21.             android:text="掃書"/>
  22.     </LinearLayout>
  23.     <LinearLayout
  24.         android:id="@+id/selectedLayout"
  25.         android:layout_width="match_parent"
  26.         android:layout_height="match_parent"
  27.         android:gravity="center"
  28.         android:orientation="vertical">
  29.         <ImageView
  30.             android:id="@+id/selectedImage"
  31.             android:layout_width="wrap_content"
  32.             android:layout_height="wrap_content"
  33.             android:src="@drawable/scan_book_hl"/>
  34.         <TextView
  35.             android:id="@+id/selectedTV"
  36.             android:layout_width="wrap_content"
  37.             android:layout_height="wrap_content"
  38.             android:text="掃書"
  39.             android:textColor="#00FF00"
  40.             android:textSize="20sp"/>
  41.     </LinearLayout>
  42. </RelativeLayout>

相關推薦

android系列——仿6.0左右滑動漸變切換效果

[java] view plaincopyprint? <pre name="code"class="java">   ------------------------------------------

Android專案導航欄仿底部導航欄TabLayout+ViewPager+Fragment

一、實現效果: 二、依賴jar包: compile 'com.android.support:design:24+'三、專案工程結構: 四、XML佈局 activity_main.xml佈局: <?xml version="1.0" encoding="u

android開發仿輸入框效果

<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:layout_m

Android程式設計仿顯示更多文字的View

微信朋友圈中,如果好友發表的文字過長,會自動收縮起來,底下有提示,當點選“顯示更多”時才會展開。 首先定義佈局檔案(很簡單,不解釋): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:

android仿博Textview的伸縮效果

package com.example.testdemo; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils.TruncateAt; import an

Android實現首字母導航條(仿)

本部落格介紹Android實現首字母導航條,先看張效果圖,具體怎麼實現看程式碼吧 具體的步驟 1.整體佈局的顯示 2. 實現A-Z的分組 3. 自定義A-Z的導航條 4. 中間顯示/隱藏觸控到導航條具體的字母 activity_main.xml <?xm

安卓專案實戰仿朋友圈的九宮格自定義控制元件

效果圖 圖片展示形式 1、當只有1張圖時,可以自己定製圖片寬高,也可以使用預設九宮格的寬高; 2、當只有4張圖時,以2*2的方式顯示; 3、除以上兩種情況下,都是按照3列方式顯示,但這時有一些細節: a、如果只有9張圖,當然是以3*3的方式顯示;

Android Studio使用ViewPager+Fragment實現仿滑動切換介面

前言 微信的滑動切換獲得大家一致好評,在我們開發的過程中我們也經常模仿微信的導航效果。 首先看下效果圖 效果還算不錯,可以滑動切換和點選切換,微信介面用listview展示資料,通訊錄介面用的recyclerview展示資料,在接下來就帶著大家一一

IOS實戰 (4) 仿新聞評論框+ 半透明模糊效果

效果圖 網易新聞評論圖 仿圖 實現思路 1.鍵盤彈出事件 2.UIVisualEffectView作為背景圖 核心程式碼 1.鍵盤彈出事件監聽 新增通知監聽 [[NSNotificationCenter defaultCe

Android 多張圖片展示,仿圖片上傳,可以選擇多張圖片

我們經常會遇到需要多張圖片展示上傳的需求 ,如圖 這樣的需求我已經遇到過多次,個人總結一下,希望大家多多指點,支援選擇多張圖片 佈局:一個GridView <com.zuihou.drunkenmonkey.widget.view.Di

iOS開發仿博視訊邊下邊播自定義AVPlayer播放器, 邊下邊播解剖。視訊處理流程,建立連線-請求資料-統籌資料-解碼資料-視訊呈現

Tips:這次的內容分為兩篇文章講述 01、[iOS]仿微博視訊邊下邊播之封裝播放器 講述如何封裝一個實現了邊下邊播並且快取的視訊播放器。 02、[iOS]仿微博視訊邊下邊播之滑動TableView自動播放 講述如何實現在tableView中滑動播放視訊,並且是流暢,不阻塞

Android自定義Viewpager指示器PagerIndicator-仿博頭條效果

平時工作之餘,喜歡看看新聞,手機難免會裝了幾個新聞閱讀類的app。新聞類的app風格大致一致,可以選擇不同欄目,欄目可以切換。最近就在用微博頭條,感覺介面挺清新的。而且它使用的PagerIndicator挺好看的。昨晚居然準時下班了,趁著早就實現了下。今天

Android中ViewPager常用功能3----仿既能點選又能滑動的選項卡

效果圖: MainActivity中 package com.example.viewpagertest4; import android.app.Activity; import android.graphics.Color; import android.supp

Android仿底部實現Tab選項卡切換效果

在網上看了比較多的關於Tab的教程,發現都很雜亂。比較多的用法是用TitlePagerTabStrip和ViewPaper。不過TitlePagerTabStrip有個很大的缺陷,Tab裡面的內容剛進去是沒有的,要滑一次才能加載出來。而且滑動的時候,Tab裡面的內容位置

Android RadioGroup+ViewPager+ActionBar實現仿6.0介面(底部滑動選單欄+導航欄)

轉載請註明原文地址:http://blog.csdn.net/anyfive/article/details/41296341 本文主要使用RadioGroup+ViewPager來實現滑動介面,使用ActionBar來實現頂部選單欄。先上圖(使用GifCam錄製)。

Android OpenGLES濾鏡開發仿抖音靈魂出竅

前言 前幾篇寫的濾鏡效果比如美顏、大眼、貼紙效果都是在錄製視訊之前,這個靈魂出竅的效果是在錄製視訊之後,可以對視訊新增效果。 思路 可以觀察到靈魂出竅的效果,其實其主影象本沒有什麼變化,只是新增了一張進行縮放的紋理,跟主影象的alpha進行線性融合的。 怎麼去取靈魂呢,靈魂是跟著

Android系列Viewpager+Fragment 優化懶載入(預載入)的實現

今天帶來的就是fragment的優化,怎麼去實現懶載入 懶載入(預載入) 懶載入字面意思就是當需要的時候才會去載入,不需要就不要載入 為什麼Fragment需要懶載入呢,一般我們都會在onCreate()或者onCreateView()裡去啟動一些資料載入操作,比如從本

docker系列詳解<>docker安裝

1、Docker 要求 CentOS 系統的核心版本高於 3.10 ,檢視本頁面的前提條件來驗證你的CentOS 版本是否支援 Docker 。 通過 uname -r 命令檢視你當前的核心版本 $ uname -r 2、使用 root 許可權登入 Centos。確保 yum 包更新到最新。 $ su

Android自定義控制元件仿汽車家下拉重新整理

關於下拉重新整理的實現原理我在上篇文章Android自定義控制元件之仿美團下拉重新整理中已經詳細介紹過了,這篇文章主要介紹錶盤的動畫實現原理 汽車之家的下拉重新整理分為三個狀態: 第一個狀態為下拉重新整理狀態(pull to refresh),在這個狀

博開發釋出

今天我們使用微博來進行開發,實現可以將內容釋出在微博上面,並顯示出此微博的釋出源。 在微博開發文件中介紹的,我們可以使用開發平臺中提供的程式碼來實現,也可以使用平臺中提供的SDK包,修改後實現。 下面介紹第一種方法。 我們首先找到微博元件中的釋出窗,使用上面提供的程式碼。