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

首頁 > 系統 > Android > 正文

解析ScrollView--仿QQ空間標題欄漸變

2019-10-23 18:29:54
字體:
來源:轉載
供稿:網友

先看一下效果圖:

android,標題欄漸變

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.hankkin.gradationtitlebar.QQSpeakActivity"> <com.hankkin.gradationscroll.GradationScrollView  android:id="@+id/scrollview"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:scrollbars="none">  <LinearLayout   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:orientation="vertical" >   <ImageView    android:id="@+id/iv_banner"    android:scaleType="fitXY"    android:src="@drawable/banner3"    android:layout_width="match_parent"    android:layout_height="200dp" />   <com.hankkin.gradationscroll.NoScrollListview    android:id="@+id/listview"    android:layout_width="match_parent"    android:layout_height="wrap_content" >   </com.hankkin.gradationscroll.NoScrollListview>  </LinearLayout> </com.hankkin.gradationscroll.GradationScrollView> <TextView  android:paddingBottom="10dp"  android:id="@+id/textview"  android:layout_width="match_parent"  android:layout_height="55dp"  android:gravity="center|bottom"  android:text="我是標題"  android:textSize="18sp"  android:textColor="@color/transparent"  android:background="#00000000" /></RelativeLayout>
public class GradationScrollView extends ScrollView { public interface ScrollViewListener {  void onScrollChanged(GradationScrollView scrollView, int x, int y,        int oldx, int oldy); } private ScrollViewListener scrollViewListener = null; public GradationScrollView(Context context) {  super(context); } public GradationScrollView(Context context, AttributeSet attrs,        int defStyle) {  super(context, attrs, defStyle); } public GradationScrollView(Context context, AttributeSet attrs) {  super(context, attrs); } public void setScrollViewListener(ScrollViewListener scrollViewListener) {  this.scrollViewListener = scrollViewListener; } @Override protected void onScrollChanged(int x, int y, int oldx, int oldy) {  super.onScrollChanged(x, y, oldx, oldy);  if (scrollViewListener != null) {   scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);  } }}

我們需要獲取圖片的高度,并且設置滾動監聽,隨著滾動的距離來設置標題欄的顏色透明度和字體顏色的透明度

/** * 獲取頂部圖片高度后,設置滾動監聽*/private void initListeners() {  ViewTreeObserver vto = ivBanner.getViewTreeObserver();  vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {   @Override   public void onGlobalLayout() {    textView.getViewTreeObserver().removeGlobalOnLayoutListener(      this);    height = ivBanner.getHeight();    scrollView.setScrollViewListener(QQSpeakActivity.this);   }  }); }  /**  * 滑動監聽  * @param scrollView  * @param x  * @param y  * @param oldx  * @param oldy*/@Overridepublic void onScrollChanged(GradationScrollView scrollView, int x, int y,        int oldx, int oldy) {  // TODO Auto-generated method stub  if (y <= 0) { //設置標題的背景顏色   textView.setBackgroundColor(Color.argb((int) 0, 144,151,166));  } else if (y > 0 && y <= height) { //滑動距離小于banner圖的高度時,設置背景和字體顏色顏色透明度漸變   float scale = (float) y / height;   float alpha = (255 * scale);   textView.setTextColor(Color.argb((int) alpha, 255,255,255));   textView.setBackgroundColor(Color.argb((int) alpha, 144,151,166));  } else { //滑動到banner下面設置普通顏色   textView.setBackgroundColor(Color.argb((int) 255, 144,151,166));  } }

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VEVB武林網!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邯郸县| 隆安县| 宜兰市| 香河县| 南充市| 谷城县| 依安县| 当阳市| 三门峡市| 二手房| 门源| 丽水市| 金沙县| 丰都县| 新田县| 宣武区| 柞水县| 太仓市| 廊坊市| 和林格尔县| 宁乡县| 枣阳市| 万全县| 宝应县| 德州市| 金昌市| 西城区| 宽城| 太和县| 韩城市| 南溪县| 黎川县| 东港市| 福泉市| 永仁县| 文化| 奎屯市| 金寨县| 建瓯市| 汾阳市| 遂平县|