QQ5.0左側滑動顯示效果,QQ5.0滑動顯示效果

來源:互聯網
上載者:User

QQ5.0左側滑動顯示效果,QQ5.0滑動顯示效果

  前三篇為大家介紹了如何?簡單的類QQ5.0左側的側滑效果,本篇我將帶領大家一起探討一下如何真正實現QQ5.0左側的側滑效果,對於本篇的內容與之前的三篇關聯性很強,如果前三篇你已經完全掌握,對於這一篇相信也沒有什麼難處,本篇的重點在於通過Android3.0以後提供的屬性動畫實現上述顯示特效。

  開始之前首先給大家說句抱歉,前三篇由於我自己的編碼問題,導致如果你還是以之前的代碼設計時,會出現Menu的背景圖沒有填充整個螢幕,這個怎麼解決呢?

  在left_menu.xml中,將background修改為android:background="#0000";

  activity_main.xml代碼:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    xmlns:hyman="http://schemas.android.com/apk/res/com.example.android_qq_view"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <com.example.menu.SlidingMenu         android:id="@+id/slidingMenu"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="@drawable/img_frame_background"        hyman:rightPadding="100dp" >        <LinearLayout             android:layout_width="wrap_content"            android:layout_height="match_parent"            android:orientation="horizontal"            >                        <include layout="@layout/left_menu"/>"                        <LinearLayout                 android:layout_width="match_parent"                android:layout_height="match_parent"                android:background="@drawable/qq"                >                <Button                     android:id="@+id/button"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:text="切換按鈕"                    />            </LinearLayout>                    </LinearLayout>    </com.example.menu.SlidingMenu>    </RelativeLayout>

  將背景圖片添加藍色標註處。

  其他部分無需改變,下面我們開始分析如何通過屬性動畫來實現上述效果:

  /**     * 實現抽屜式側滑效果     */    @Override    protected void onScrollChanged(int l, int t, int oldl, int oldt) {//l相當於getScrollX()表示Menu左側的位移量        super.onScrollChanged(l, t, oldl, oldt);                /**         * 區別1:內容地區1.0~0.7 縮放的效果 scale : 1.0~0.0 0.7 + 0.3 * scale         *          * 區別2:菜單的位移量需要修改         *          * 區別3:菜單的顯示時有縮放以及透明度變化 縮放:0.7 ~1.0 1.0 - scale * 0.3 透明度 0.6 ~ 1.0          * 0.6+ 0.4 * (1- scale) ;         *          */                //設定Menu的顯示OR隱藏動畫        float scroll = l * 1.0f /mMenuWidth;//1~0        ViewHelper.setTranslationX(mMenu, mMenuWidth*scroll*0.7f);                //設定Menu的透明度變化        float leftScale = 0.6f+ 0.4f * (1- scroll);        ViewHelper.setScaleX(mMenu, leftScale);        ViewHelper.setScaleY(mMenu, leftScale);        //設定Menu的縮放比例        float leftAlpha = 1.0f - scroll * 0.3f;        ViewHelper.setAlpha(mMenu, leftAlpha);                //設定Content的縮放中心        ViewHelper.setPivotX(mContent, 0);        ViewHelper.setPivotY(mContent, mContent.getHeight()/2);        //設定Content的透明度變化        float rightScale = 0.7f + 0.3f * scroll;        ViewHelper.setScaleX(mContent, rightScale);        ViewHelper.setScaleY(mContent, rightScale);            }

  需要提示的就是對於Android3.0以下的系統,不支援屬性動畫效果,在這裡我匯入了一個包,大家如果需要可以留言。好了,到這裡我們的側滑效果就完全為大家實現了,請欣賞:

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.