您的位置:首页 > 其它

ScrollView滚动改变标题栏透明度

2016-04-29 16:35 239 查看
带滚动监听的scrollview

package com.example.d_changealphabyscroll.widget;

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);

}

}

}

Activity中实现的代码

package com.example.d_changealphabyscroll;

import com.example.d_changealphabyscroll.widget.ObservableScrollView;

import com.example.d_changealphabyscroll.widget.ObservableScrollView.ScrollViewListener;

import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewTreeObserver;

import android.view.ViewTreeObserver.OnGlobalLayoutListener;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.ImageView;

import android.widget.ScrollView;

public class MainActivity extends Activity implements ScrollViewListener{

private View layoutHead;

private ObservableScrollView scrollView;

private ImageView imageView;

private WebView webView;

private int height ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

}

private void initView() {

webView = (WebView) findViewById(R.id.webview1);

scrollView = (ObservableScrollView) findViewById(R.id.scrollview);

layoutHead = findViewById(R.id.view_head);

imageView = (ImageView) findViewById(R.id.imageView1);

layoutHead.setBackgroundColor(Color.argb(0, 0xfd, 0x91, 0x5b));

      scrollView.setScrollViewListener(this);


return true;

}

});

//获取顶部图片高度后,设置滚动监听

ViewTreeObserver vto = imageView.getViewTreeObserver();

vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);

height = imageView.getHeight();

imageView.getWidth();

scrollView.setScrollViewListener(MainActivity.this);

}

});

}

@Override
public void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy) {
//        if(y<=getResources().getDisplayMetrics().widthPixels){
int w=getResources().getDisplayMetrics().widthPixels;
float alpha = (float)y /getResources().getDisplayMetrics().widthPixels*255;

if (alpha>255){
alpha = 255;
}
layoutHead.setBackgroundColor(Color.argb((int) alpha, 0xff, 0xff, 0xff));//白色背景

}


}

效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: