最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

下面看代碼吧

首先自定義一個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中設(shè)置對ScrollView的監(jiān)聽,同時設(shè)置監(jiān)聽高度為500,將500分為100%來實現(xiàn)漸變導(dǎo)航欄的改變

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

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

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

相關(guān)文章

  • android 布局之ConstraintLayout的使用

    android 布局之ConstraintLayout的使用

    這篇文章主要介紹了android 布局之ConstraintLayout的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Android自定義轉(zhuǎn)盤菜單效果

    Android自定義轉(zhuǎn)盤菜單效果

    這篇文章主要為大家詳細介紹了Android自定義轉(zhuǎn)盤菜單效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Android XmlPullParser 方式解析 Xml 文檔

    Android XmlPullParser 方式解析 Xml 文檔

    這篇文章主要介紹了Android XmlPullParser 方式解析 Xml 文檔的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 深入理解Android Matrix理論與使用的詳解

    深入理解Android Matrix理論與使用的詳解

    本篇文章是對Android Matrix理論與使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Android控件之ProgressBar用法實例分析

    Android控件之ProgressBar用法實例分析

    這篇文章主要介紹了Android控件之ProgressBar用法,以一個完整實例形式較為詳細的分析了ProgressBar控件操作進度顯示的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Kotlin語言使用WebView示例介紹

    Kotlin語言使用WebView示例介紹

    隨著后臺技術(shù)的不斷發(fā)展,App前端的應(yīng)用都布置了Web頁面的界面,這個界面就是由WebView組件渲染出來的。WebView由如下優(yōu)點:可以直接顯示和渲染W(wǎng)eb頁面或者網(wǎng)頁;可以直接調(diào)用網(wǎng)絡(luò)上或者本地的html文件,也可以和JavaScript交互使用
    2022-09-09
  • Android開發(fā)實現(xiàn)保存圖片到手機相冊功能

    Android開發(fā)實現(xiàn)保存圖片到手機相冊功能

    這篇文章主要介紹了Android開發(fā)實現(xiàn)保存圖片到手機相冊功能,涉及Android圖形及文件相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Android ListView列表實現(xiàn)倒計時

    Android ListView列表實現(xiàn)倒計時

    這篇文章主要為大家詳細介紹了Android ListView列表實現(xiàn)倒計時,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Android顏色處理SweepGradient掃描及梯度渲染示例

    Android顏色處理SweepGradient掃描及梯度渲染示例

    這篇文章主要為大家介紹了Android顏色處理SweepGradient掃描渲染及梯度渲染示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Android中ActionBar和ToolBar添加返回箭頭的實例代碼

    Android中ActionBar和ToolBar添加返回箭頭的實例代碼

    這篇文章主要介紹了Android中ActionBar和ToolBar添加返回箭頭的實例代碼,需要的朋友可以參考下
    2017-09-09

最新評論

和平县| 木兰县| 越西县| 兴义市| 诸城市| 潮安县| 天等县| 台东县| 新郑市| 海晏县| 大名县| 岱山县| 宁国市| 贵溪市| 新乡县| 齐河县| 鄂伦春自治旗| 邵阳市| 荔波县| 渭南市| 海丰县| 图们市| 延寿县| 阳春市| 崇文区| 沁水县| 广灵县| 尼玛县| 蓬莱市| 洞口县| 深圳市| 伊宁市| 贺州市| 诸城市| 克什克腾旗| 克什克腾旗| 县级市| 淮安市| 景德镇市| 海兴县| 突泉县|