一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android之scrollview滑動使標題欄漸變背景色的實例代碼

Android之scrollview滑動使標題欄漸變背景色的實例代碼

2022-02-19 16:56歲月LICHENGAN Android

這篇文章主要介紹了Android之scrollview滑動使標題欄漸變背景色的實例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

之前也是在網上看到這種效果,不過是滾動listview來改變標題欄的顏色,感覺那個應用的比較少,比如我要滾動scrollview來實現呢,那么問題就來了,廢話少說,看一下要實現的效果先(這是在項目應用的效果)。

Android之scrollview滑動使標題欄漸變背景色的實例代碼

直接上源代碼:

一、核心類(ObservableScrollView.java)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.jukopro.titlebarcolor;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;
/**
 * 帶滾動監聽的scrollview
 *
 */
public class ObservableScrollView extends ScrollView {
 public interface ScrollViewListener {
  void onScrollChanged(ObservableScrollView scrollView, int x, int y,
    int oldx, int oldy);
 }
 private ScrollViewListener scrollViewListener = null;
 public ObservableScrollView(Context context) {
  super(context);
 }
 public ObservableScrollView(Context context, AttributeSet attrs,
   int defStyle) {
  super(context, attrs, defStyle);
 }
 public ObservableScrollView(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);
  }
 }
}

二、具體使用(MainActivity.java)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.jukopro.titlebarcolor;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.jukopro.titlebarcolor.ObservableScrollView.ScrollViewListener;
public class MainActivity extends Activity implements ScrollViewListener{
 private ObservableScrollView scrollView;
 private ListView listView;
 private ImageView imageView;
 private TextView textView;
 private int imageHeight;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  scrollView = (ObservableScrollView) findViewById(R.id.scrollview);
  listView = (ListView) findViewById(R.id.listview);
  imageView = (ImageView) findViewById(R.id.imageview);
  textView = (TextView) findViewById(R.id.textview);
  initListeners();
  initData();
 }
 private void initListeners() {
  // 獲取頂部圖片高度后,設置滾動監聽
  ViewTreeObserver vto = imageView.getViewTreeObserver();
  vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
   @Override
   public void onGlobalLayout() {
    imageView.getViewTreeObserver().removeGlobalOnLayoutListener(
      this);
    imageHeight = imageView.getHeight();
    scrollView.setScrollViewListener(MainActivity.this);
   }
  });
 }
 private void initData() {
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.data));
  listView.setAdapter(adapter);
 }
 @Override
 public void onScrollChanged(ObservableScrollView scrollView, int x, int y,
   int oldx, int oldy) {
  // TODO Auto-generated method stub
  // Log.i("TAG", "y--->" + y + " height-->" + height);
  if (y <= 0) {
   textView.setBackgroundColor(Color.argb((int) 0, 227, 29, 26));//AGB由相關工具獲得,或者美工提供
  } else if (y > 0 && y <= imageHeight) {
   float scale = (float) y / imageHeight;
   float alpha = (255 * scale);
   // 只是layout背景透明(仿知乎滑動效果)
   textView.setBackgroundColor(Color.argb((int) alpha, 227, 29, 26));
  } else {
   textView.setBackgroundColor(Color.argb((int) 255, 227, 29, 26));
  }
 }
}

三、XML(activity_main.xml)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<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="${relativePackage}.${activityClass}" >
 <com.jukopro.titlebarcolor.ObservableScrollView
  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/imageview"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:background="@drawable/zuqiu" />
   <com.jukopro.titlebarcolor.MyListview
    android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
   </com.jukopro.titlebarcolor.MyListview>
  </LinearLayout>
 </com.jukopro.titlebarcolor.ObservableScrollView>
 <TextView
  android:id="@+id/textview"
  android:layout_width="match_parent"
  android:layout_height="48dp"
  android:gravity="center"
  android:text="我是標題"
  android:textSize="18sp"
  android:textColor="@android:color/white"
  android:background="#00000000" />
</RelativeLayout>
 

還不懂的童鞋可以下載源代碼.

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://blog.csdn.net/sinat_21283073/article/details/51315926

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产女王女m视频vk 国产农村一级特黄α真人毛片 | 男女真实无遮挡xx00动态图软件 | 亚洲好骚综合 | 好大~好爽~再进去一点 | 国产真实偷乱视频在线观看 | 青草色视频| 香蕉久久久久久狠狠色 | 精品国产一区二区三区在线 | 激情六月丁香婷婷四房播 | 肉肉小说在线阅读 | 日本aaaa级 | 亚洲第一国产 | 天天操夜夜操狠狠操 | 99国产精品久久久久久久... | 亚洲成人福利 | 国产1区2区在线观看 | 日韩精品视频在线观看免费 | 公交车强校花系列小说 | 国内在线播放 | 91精品国产在线 | 亚洲AV国产国产久青草 | 国色天香论坛社区在线视频 | 视频一区国产精戏刘婷 | 无套日出白浆在线播放 | 美女自插| 校花的第一次好紧好爽 | 18捆绑调教在线高清 | 亚洲精品有码在线观看 | 99九九成人免费视频精品 | 亚洲国产精品久久无套麻豆 | 麻豆天美精东果冻传媒在线 | x8x8在线观看| 国产一区二区视频在线 | 青草视频在线观看视频 | 麻豆网站在线看 | 高h细节肉爽文办公室 | 国产成人精品曰本亚洲77美色 | 国产激情一区二区三区成人91 | 国产亚洲精品网站 | 亚洲午夜小视频 | 欧美一区二区三区视视频 |