先上图
这里面的横向和竖向的都是使用权重实现的,一会会把代码贴出来,下面的那个viewpager是拽网上的
横向柱形图的实现
这里使用RecycleView实现的。其中item布局是关键。需要依据权重。不多说,直接上代码
接下来是item的布局了。
其中count_type_progress的drawable文件
其他的就是设置recycleview的内容了
上面是实现的横向的柱形图的样子
下面实现纵向的柱形图的样子(PS:因为项目需要的没那么麻烦,所以没考虑用图表实现)
关键也是权重
|
|
|
|
这样子就实现了 纵向的柱形图
最下面的那个类似QQ附近人的。是看网上帖子,使用viewpager实现的,也一并贴出来
首先是自定义的VIEWPAGER
``java
/* 使用viewpager实现类似QQ附近的人
/
public class CustomViewPager extends ViewPager {
private long downTime;
private float LastX;
private float mSpeed;
public CustomViewPager(Context context) {
super(context);
}
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
float x = ev.getX();
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
downTime = System.currentTimeMillis();
LastX = x;
break;
case MotionEvent.ACTION_MOVE:
x = ev.getX();
break;
case MotionEvent.ACTION_UP:
//计算得到手指从按下到离开的滑动速度
mSpeed = (x - LastX) * 1000 / (System.currentTimeMillis() - downTime);
break;
}
return super.dispatchTouchEvent(ev);
}
public float getSpeed() {
return mSpeed;
}
public void setSpeed(float mSpeed) {
this.mSpeed = mSpeed;
}
}
page切换动画
手势滑动类
完整的xml文件
viewpager适配器
Fragment中
PS:网上的还有个雷达图,这里用不到,大家可以自行搜索