亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android開發(fā)基于ScrollView實現(xiàn)的漸變導航欄效果示例

 更新時間:2017年12月06日 10:52:54   作者:Surkey1030  
這篇文章主要介紹了Android開發(fā)基于ScrollView實現(xiàn)的漸變導航欄效果,涉及ScrollView事件響應及元素屬性動態(tài)操作相關實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Android開發(fā)基于ScrollView實現(xiàn)的漸變導航欄效果。分享給大家供大家參考,具體如下:

前些日子項目要在原來的頁面上加入漸變導航欄的功能,查了很多資料,很多資源都是監(jiān)聽到listview的高度來實現(xiàn)漸變導航欄的效果,可是項目里面很多的界面都是使用ScrollView來實現(xiàn)滑動效果。

實在沒辦法,就自己寫了一個test來實現(xiàn)這個效果。

話不多說,馬上看一下思路吧,其實漸變導航欄無非就是改變導航欄的透明度也就是可以設定一個高度,根據(jù)這個高度,監(jiān)聽ScrollView滑動的距離,從而實現(xiàn)漸變導航欄的效果。

下面看代碼吧

首先自定義一個ScrollView

1、ObservableScrollView.java

package com.example.test;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.widget.ScrollView;
public class ObservableScrollView extends ScrollView implements
    ObservableScrollable {
  private boolean mDisableEdgeEffects = true;
  private OnScrollChangedCallback mOnScrollChangedListener;
  public ObservableScrollView(Context context) {
    super(context);
  }
  public ObservableScrollView(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
  public ObservableScrollView(Context context, AttributeSet attrs,
      int defStyle) {
    super(context, attrs, defStyle);
  }
  @Override
  protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    super.onScrollChanged(l, t, oldl, oldt);
    if (mOnScrollChangedListener != null) {
      mOnScrollChangedListener.onScroll(l, t);
    }
  }
  @Override
  protected float getTopFadingEdgeStrength() {
    if (mDisableEdgeEffects
        && Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
      return 0.0f;
    }
    return super.getTopFadingEdgeStrength();
  }
  @Override
  protected float getBottomFadingEdgeStrength() {
    if (mDisableEdgeEffects
        && Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
      return 0.0f;
    }
    return super.getBottomFadingEdgeStrength();
  }
  @Override
  public void setOnScrollChangedCallback(OnScrollChangedCallback callback) {
    mOnScrollChangedListener = callback;
  }
}

這里面定義了兩個接口

2、ObservableScrollable.java

package com.example.test;
public interface ObservableScrollable {
  void setOnScrollChangedCallback(OnScrollChangedCallback callback);
}

3、OnScrollChangedCallback.java

package com.example.test;
public interface OnScrollChangedCallback {
  void onScroll(int l, int t);
}

這里的回調(diào)函數(shù),實現(xiàn)了對ScrollView的監(jiān)聽

然后就是main方法

4、MainActivity.java

package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
public class MainActivity extends Activity implements OnScrollChangedCallback {
  ObservableScrollable sv;
  RelativeLayout rl;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
    rl = (RelativeLayout) findViewById(R.id.rl);
    sv = (ObservableScrollable) findViewById(R.id.sv);
    sv.setOnScrollChangedCallback(this);
  }
  @Override
  public void onScroll(int l, int t) {
    float newAlpha = (float)t/500;
    rl.setAlpha(newAlpha);
  }
}

main中設置對ScrollView的監(jiān)聽,同時設置監(jiān)聽高度為500,將500分為100%來實現(xiàn)漸變導航欄的改變

然后在xml文件上繼承ObservableScrollView類即可。

更多關于Android相關內(nèi)容感興趣的讀者可查看本站專題:《Android基本組件用法總結》、《Android開發(fā)入門與進階教程》、《Android布局layout技巧總結》、《Android視圖View技巧總結》、《Android編程之a(chǎn)ctivity操作技巧總結》、《Android資源操作技巧匯總》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

相關文章

  • Kotlin注解與反射的定義及創(chuàng)建使用詳解

    Kotlin注解與反射的定義及創(chuàng)建使用詳解

    這篇文章主要為大家介紹了Kotlin注解與反射的定義及使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Android TextView兩端對齊解決辦法

    Android TextView兩端對齊解決辦法

    這篇文章主要介紹了Android TextView兩端對齊解決辦法的相關資料,需要的朋友可以參考下
    2017-06-06
  • Android自定義圓點指示器

    Android自定義圓點指示器

    這篇文章主要為大家詳細介紹了Android自定義圓點指示器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Android實現(xiàn)判斷某個服務是否正在運行的方法

    Android實現(xiàn)判斷某個服務是否正在運行的方法

    這篇文章主要介紹了Android實現(xiàn)判斷某個服務是否正在運行的方法,涉及Android針對系統(tǒng)服務運行狀態(tài)的判斷技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Android仿騰訊視頻實現(xiàn)懸浮窗效果

    Android仿騰訊視頻實現(xiàn)懸浮窗效果

    對view比較熟悉的同學們應該發(fā)現(xiàn)了,其實我們的懸浮窗就是一個view,我們只需要把view添加到windowManager上就可以了。那么,下面通過本文給大家分享Android仿騰訊視頻實現(xiàn)懸浮窗效果,一起看看吧
    2021-06-06
  • Android studio六大基本布局詳解

    Android studio六大基本布局詳解

    這篇文章主要介紹了Android常用的布局方式:線性布局,相對布局,表格布局,層布局,絕對布局,網(wǎng)格布局,用的相對較多的是線性布局和相對布局。感興趣的同學可以參考閱讀
    2023-04-04
  • Android PopWindow 設置背景亮度的實例

    Android PopWindow 設置背景亮度的實例

    這篇文章主要介紹了Android PopWindow 設置背景亮度的實例的相關資料,這里提供實現(xiàn)方法,希望能幫助有所需要的朋友,需要的朋友可以參考下
    2017-08-08
  • Android自定義ViewGroup實現(xiàn)豎向引導界面

    Android自定義ViewGroup實現(xiàn)豎向引導界面

    這篇文章主要為大家詳細介紹了Andoird自定義ViewGroup實現(xiàn)豎向引導界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Android中使用OkHttp包處理HTTP的get和post請求的方法

    Android中使用OkHttp包處理HTTP的get和post請求的方法

    OkHttp包為安卓開發(fā)中的HTTP協(xié)議網(wǎng)絡編程帶來了很大的便利,這里我們就來看一下最基本的、Android中使用OkHttp包處理HTTP的get和post請求的方法:
    2016-07-07
  • Android控件實現(xiàn)直播App點贊飄心動畫

    Android控件實現(xiàn)直播App點贊飄心動畫

    這篇文章主要為大家詳細介紹了FlowLikeView控件實現(xiàn)直播App特效之點贊飄心動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論