package com.example.administrator.testanima.ActivityTwo;import android.content.Context;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;import com.example.administrator.testanima.R;import java.util.ArrayList;import java.util.List;import java.util.zip.DeflaterOutputStream;/** * Created by Administrator on 2017/6/13. */public class ActivityTwo extends AppCompatActivity {    List list;    int widthScreen;    int useWidth;    Handler handler;    RecyclerView recyclerView;    MRecycleViewAdapter mRecycleViewAdapter;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_two);        initRecycleView();    }    private void initRecycleView() {        recyclerView = (RecyclerView) findViewById(R.id.recycleview);        list = new ArrayList();        for (int i = 0; i < 100; i++) {            MyBean myBean = new MyBean();            myBean.setCheck(false);            myBean.setNumber(i + "");            list.add(myBean);        }        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);//设置水平        mRecycleViewAdapter = new MRecycleViewAdapter(list, ActivityTwo.this);        recyclerView.setLayoutManager(linearLayoutManager);        recyclerView.setAdapter(mRecycleViewAdapter);        setRecycleView();    }    private void setRecycleView() {        recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {            @Override            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {                super.onScrollStateChanged(recyclerView, newState);            }            @Override            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {                super.onScrolled(recyclerView, dx, dy);                double itemWidth = 0.2 * widthScreen;                //这个位置表示目前在屏幕显示的第一个item的位置                int centerPosition = getPosition() + (int) (useWidth / itemWidth);                Log.e("中间的位置", centerPosition + "=");                for (int i = 0; i < list.size(); i++) {                    if (i != centerPosition) {                        list.get(i).setCheck(false);                    } else {                        list.get(i).setCheck(true);                    }                }                mRecycleViewAdapter.notifyDataSetChanged();            }        });    }    @Override    protected void onResume() {        super.onResume();        //获取view的中心坐标        getPoint();    }    private void getPoint() {        /*由于考虑到view可能还没绘制,所以来一个延时的线程获取view的位置*/        WindowManager wm = (WindowManager)                getSystemService(Context.WINDOW_SERVICE);        widthScreen = wm.getDefaultDisplay().getWidth();        final View view = findViewById(R.id.top);        ViewGroup.LayoutParams v = view.getLayoutParams();        v.width = (int) (widthScreen * 0.2);        v.height = (int) (widthScreen * 0.2);        handler = new Handler() {            @Override            public void handleMessage(Message msg) {                super.handleMessage(msg);            }        };        handler.postDelayed(new Runnable() {            @Override            public void run() {                int X = view.getLeft();                int Y = view.getTop();                int width = view.getWidth();                Log.e("四个参数", X + "=" + Y + "=" + width + "=" + widthScreen);                useWidth = X + width / 2;            }        }, 1000);    }    /*获取recycleview中当前显示的第一个item的position*/    private int getPosition() {        LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();        int position = layoutManager.findFirstVisibleItemPosition();        return position;    }}


更多相关文章

  1. Android(安卓)坐标
  2. Android自定义对话框(Dialog)位置,大小
  3. [Android算法] 实现获取视频的缩略图(ThumbnailUtils),并且播放
  4. Android剪切板
  5. Android(安卓)微博布局风格
  6. android软键盘的显示与隐藏
  7. Android基站+联网+google数据库定位
  8. Android(安卓)启动activity并且获取他的返回值
  9. android中的webview进度条

随机推荐

  1. Android框架布局管理器FrameLayout
  2. android红米等关于读取本地文件夹图片获
  3. Android系统架构详解
  4. 转自应用程序获得系统权限
  5. com.android.internal.R,android.R,Framewo
  6. Android(安卓)中文API (70) —— Bluetooth
  7. cocos2d-x学习笔记(十)android自动化打包ba
  8. android解决读取assets文件夹下的json或t
  9. Android(安卓)adb方式获取手机总内存和可
  10. Android实用代码七段(五)