Android之学习
重载滑动监听事件,实现上滑和下滑等操作。
private int[] images={R.drawable.abc_0, R.drawable.abc_1,R.drawable.abc_2, R.drawable.abc_3,R.drawable.abc_4 };
private int index=0;
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ScrollView scrollView=findViewById(R.id.myScrollView);
final LinearLayout myLinearLayout=findViewById(R.id.ll_layout);
final int width=getWindowManager().getDefaultDisplay().getWidth();
final int height=getWindowManager().getDefaultDisplay().getHeight();
for (int image : images) {
ImageView imageView = new ImageView(MainActivity.this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setLayoutParams(new LinearLayout.LayoutParams(width, height));
imageView.setImageResource(image);
myLinearLayout.addView(imageView);
}
final GestureDetector myDetector=new GestureDetector(new GestureDetector.SimpleOnGestureListener(){
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if(e2.getY() > e1.getY()){
scrollView.smoothScrollBy(0,height*(index<=0 ? 0 : --index));
}else if(e2.getY() < e1.getY()){
scrollView.smoothScrollBy(0, height*(index>=myLinearLayout.getChildCount() ? myLinearLayout.getChildCount()-1 : ++index));
}
return true;
}
});
scrollView.setOnTouchListener((v, event) -> myDetector.onTouchEvent(event));
}