ScrollView监听滑动到哪个子控件
来源:互联网 发布:mahout算法库 编辑:程序博客网 时间:2024/04/30 00:55
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">情景:在一个scrollview里面有多个可以播放视频的item,可以上下滑动,当item可以见的时候视频自动开始播放。</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);">一共3个文件</span></span>
show code
package com.example.beteng.scrollview;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.widget.LinearLayout;import android.widget.ScrollView;public class MainActivity extends AppCompatActivity { private boolean isScoll; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ScrollView myScrollview = (ScrollView) findViewById(R.id.scrollView); myScrollview.setOnTouchListener(new View.OnTouchListener() { private int lastY = 0; private int touchEventId = -9983761; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); View scroller = (View) msg.obj; if (msg.what == touchEventId) { if (lastY == scroller.getScrollY()) { //停止了 double i = DensityUtils.px2dp(MainActivity.this, lastY); int itemShow = 0; if ((i<=50)) { itemShow = 1; Log.e("MainActivity", "显示了第" + 1 + "个"); }else if (i>50&&i<=250) { itemShow = 2; Log.e("MainActivity", "显示了第" + 2 + "个"); }else if (i>250&&i<=450) { itemShow = 3; Log.e("MainActivity", "显示了第" + 3 + "个"); }else {
itemShow = (int) (i / (200+8))+2; } Log.e("MainActivity", "lastY:" + i); Log.e("MainActivity", "显示了第" + itemShow + "个"); } else { handler.sendMessageDelayed(handler.obtainMessage(touchEventId, scroller), 1); lastY = scroller.getScrollY(); } } } }; @Override public boolean onTouch(View v, MotionEvent event) { isScoll = false; int eventAction = event.getAction(); int y = (int) event.getRawY(); switch (eventAction) { case MotionEvent.ACTION_UP: handler.sendMessageDelayed(handler.obtainMessage(touchEventId, v), 5); break; default: break; } return false; } }); }}
package com.example.beteng.scrollview;import android.content.Context;import android.util.TypedValue;/** * 常用单位转换的辅助类 * * * */public class DensityUtils{ private DensityUtils() { /* cannot be instantiated */ throw new UnsupportedOperationException("cannot be instantiated"); } /** * dp转px * * @param context * @param val * @return */ public static int dp2px(Context context, float dpVal) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal, context.getResources().getDisplayMetrics()); } /** * sp转px * * @param context * @param val * @return */ public static int sp2px(Context context, float spVal) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spVal, context.getResources().getDisplayMetrics()); } /** * px转dp * * @param context * @param pxVal * @return */ public static float px2dp(Context context, float pxVal) { final float scale = context.getResources().getDisplayMetrics().density; return (pxVal / scale); } /** * px转sp * * @param fontScale * @param pxVal * @return */ public static float px2sp(Context context, float pxVal) { return (pxVal / context.getResources().getDisplayMetrics().scaledDensity); }}
源码下载地址:https://github.com/yogkin/Scrollview.git
0 0
- ScrollView监听滑动到哪个子控件
- Android控件:ScrollView的使用,滑动到底部的监听
- 监听ScrollView滑动到顶端和底部
- ScrollView监听滑动到底部的处理。
- 监听滑动到底部的ScrollView
- 监听ScrollView滑动到顶端和底部
- ScrollView监听滑动到底部、顶部
- ScrollView滑动到底部的监听
- Android 监听 ScrollView 滑动到最底部
- ScrollView监听是否滑动到底部
- IOS ScrollView 子控件滑动手势冲突
- scrollview拦截子控件的滑动
- Android中监听ScrollView滑动停止和滑动到底部
- Android中监听ScrollView滑动停止和滑动到底部
- 监听ScrollView滑动方向
- ScrollView滑动的监听
- ScrollView 滑动监听
- Android ScrollView滑动监听
- js,正则表达式,去除重复字符
- OPENGL该如何用混合模式
- android网络通信之WIFI教程实例汇总
- springboot 使用心得
- ObjectARX安装小结
- ScrollView监听滑动到哪个子控件
- Java解析网络数据流的三种特殊方法
- Saleforce 潜在客户未完成发送信息提醒
- 30个酷毙的交互式网站(HTML5+CSS3)
- Log4Net level优先级别
- 2016精选Java面试题各个击破一
- Windows 下pip的安装
- PHP strtotime() 函数
- 查找算法