推荐学习资料
- 脑图
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
public class SlidingPanel extends RelativeLayout {
private Context context;
private FrameLayout leftMenu;
private FrameLayout middleMenu;
private FrameLayout rightMenu;
private FrameLayout middleMask;
private Scroller mScroller;
public final int LEFT_ID = 0xaabbcc;
public final int MIDEELE_ID = 0xaaccbb;
public final int RIGHT_ID = 0xccbbaa;
private boolean isSlideCompete;
private boolean isHorizontalScroll;
private Point point = new Point();
private static final int SLIDE_SLOP = 20;
public SlidingPanel(Context context) {
super(context);
initView(context);
}
public SlidingPanel(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
}
private void initView(Context context) {
this.context = context;
mScroller = new Scroller(context, new DecelerateInterpolator());
leftMenu = new FrameLayout(context);
middleMenu = new FrameLayout(context);
rightMenu = new FrameLayout(context);
middleMask = new FrameLayout(context);
leftMenu.setBackgroundColor(Color.RED);
middleMenu.setBackgroundColor(Color.GREEN);
rightMenu.setBackgroundColor(Color.RED);
middleMask.setBackgroundColor(0x88000000);
addView(leftMenu);
addView(middleMenu);
addView(rightMenu);
addView(middleMask);
middleMask.setAlpha(0);
}
public float onMiddleMask(){
return middleMask.getAlpha();
}
@Override
public void scrollTo(int x, int y) {
super.scrollTo(x, y);
onMiddleMask();
// Log.e(“getScrollX”,“getScrollX=”+getScrollX());//可以是负值
int curX = Math.abs(getScrollX());
float scale = curX/(float)leftMenu.getMeasuredWidth();
middleMask.setAlpha(scale);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
middleMenu.measure(widthMeasureSpec, heightMeasureSpec);
middleMask.measure(widthMeasureSpec, heightMeasureSpec);
int realWidth = MeasureSpec.getSize(widthMeasureSpec);
int tempWidthMeasure = MeasureSpec.makeMeasureSpec(
(int) (realWidth * 0.8f), MeasureSpec.EXACTLY);
leftMenu.measure(tempWidthMeasure, heightMeasureSpec);
rightMenu.measure(tempWidthMeasure, heightMeasureSpec);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
middleMenu.layout(l, t, r, b);
middleMask.layout(l, t, r, b);
leftMenu.layout(l - leftMenu.getMeasuredWidth(), t, r, b);
rightMenu.layout(
l + middleMenu.getMeasuredWidth(),
t,
l + middleMenu.getMeasuredWidth()
- rightMenu.getMeasuredWidth(), b);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (!isSlideCompete) {
handleSlideEvent(ev);
return true;
}
if (isHorizontalScroll) {
switch (ev.getActionMasked()) {
case MotionEvent.ACTION_MOVE:
int curScrollX = getScrollX();
int dis_x = (int) (ev.getX() - point.x);
//滑动方向和滚动滚动条方向相反,因此dis_x必须取负值
int expectX = -dis_x + curScrollX;
if(dis_x>0)
{
Log.d(“I”,“Right-Slide,Left-Scroll”);//向右滑动,向左滚动
}else{
Log.d(“I”,“Left-Slide,Right-Scroll”);
}
Log.e(“I”,“ScrollX=”+curScrollX+" , X=“+ev.getX()+” , dis_x="+dis_x);
//规定expectX的变化范围
int finalX = Math.max(-leftMenu.getMeasuredWidth(),Math.min(expectX, rightMenu.getMeasuredWidth()));
scrollTo(finalX, 0);
point.x = (int) ev.getX();//更新,保证滑动平滑
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
curScrollX = getScrollX();
if (Math.abs(curScrollX) > leftMenu.getMeasuredWidth() >> 1) {
if (curScrollX < 0) {
mScroller.startScroll(curScrollX, 0,
-leftMenu.getMeasuredWidth() - curScrollX, 0,
200);
} else {
mScroller.startScroll(curScrollX, 0,
leftMenu.getMeasuredWidth() - curScrollX, 0,
200);
}
} else {
mScroller.startScroll(curScrollX, 0, -curScrollX, 0, 200);
}
invalidate();
isHorizontalScroll = false;
isSlideCompete = false;
break;
}
} else {
switch (ev.getActionMasked()) {
case MotionEvent.ACTION_UP:
isHorizontalScroll = false;
文末
那么对于想坚持程序员这行的真的就一点希望都没有吗?
其实不然,在互联网的大浪淘沙之下,留下的永远是最优秀的,我们考虑的不是哪个行业差哪个行业难,就逃避掉这些,无论哪个行业,都会有他的问题,但是无论哪个行业都会有站在最顶端的那群人。我们要做的就是努力提升自己,让自己站在最顶端,学历不够那就去读,知识不够那就去学。人之所以为人,不就是有解决问题的能力吗?挡住自己的由于只有自己。
Android希望=技能+面试
- 技能
- 面试技巧+面试题
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
vHtkKBg-1714962417396)]
- 面试技巧+面试题
[外链图片转存中…(img-Crqn6N58-1714962417396)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!