Android 滑动改变top颜色
来源:互联网 发布:中小型企业网络建设 编辑:程序博客网 时间:2024/06/14 01:50
“`
/**
* 带滚动监听的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;}@Overrideprotected 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); }}
public class MainActivity extends Activity implements ScrollViewListener{
private ObservableScrollView scrollView;private ListView listView;private ImageView imageView;private TextView textView;private int imageHeight;@Overrideprotected 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);}@Overridepublic 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)); }}
0 0
- Android 滑动改变top颜色
- android scrollview 滑动 改变标题栏颜色
- Android下ListView上下滑动背景颜色改变
- Android 滑动改变标题/栏导航栏颜色、透明度
- 滑动改变ViewPager背景颜色
- 滑动改变标题栏的颜色
- android 改变bitmap颜色
- 改变android控件颜色
- android TextView 改变颜色
- android 状态栏颜色改变
- Android 改变状态栏颜色
- 改变android状态栏颜色
- android改变状态栏颜色
- 改变android状态栏颜色
- android 拖动圆形控件 滑动到屏幕边缘随机改变颜色
- android仿今日头条之字体颜色随ViewPager的滑动步伐而改变
- Android 标题栏和状态栏随ScrollView滑动颜色改变轻松实现
- Android滑动改变头部效果
- 二叉索引树(树状数组)
- js判断手机端是否弹出软键盘
- iOS CoreAnimation专题——技巧篇(二)CAShapeLayer with Bezier Path - Layer世界的神奇画笔
- ListView点击事件失效(item里面有button按钮控件)解决方法
- 5G是一场革命
- Android 滑动改变top颜色
- 高效显示Bitmap-----From "Getting Started"
- android不能调试解决方法
- CMOS Sensor的调试经验分享
- Editext 优化
- css动画效果
- AutoCamera - 极简的Android拍照/相册/截图调用方法
- PHP开发中遇到的关于PHP及JS跳转的方法总结
- shell中let 命令与Expr命令介绍