Android重要控件概览(下)
最后更新于:2022-04-01 14:27:16
### 1、ViewFlipper——多页面管理控件,实现子界面的自动切换
(1)为ViewFlipper加入View:A.静态导入(在Layout布局文件中直接添加View控件); B.动态导入(addView())
(2)设置进入动画:setInAnimation();
设置退出动画:setOutAnimation();
设置视图切换自动播放时间间隔:setFlipInterval();
开始播放:startFlipping();
(3)设置支持手势活动:
~~~
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
//手指落下
case MotionEvent.ACTION_DOWN: {
startX=event.getX();
break;
}
//手指滑动
case MotionEvent.ACTION_UP:
{
//向右滑动
if(event.getX()-startX>50)
{
flipper.setInAnimation(this, R.anim.left_in);
flipper.setOutAnimation(this, R.anim.left_out);
flipper.showNext();
}
//向左滑动
if(startX-event.getX()>50)
{
flipper.setInAnimation(this, R.anim.right_in);
flipper.setOutAnimation(this, R.anim.right_out);
flipper.showPrevious();
}
break;
}
}
//手指离开
case MotionEvent.ACTION_UP:
{
break;
}
return super.onTouchEvent(event);
}
~~~
### 2、ScrollView——内容很多,屏幕显示不完,通过滚动来显示完整的视图
(1)ScrollView种类:A. HorizontalScrollView:水平滚动视图;B.ScrollView:垂直滚动视图;
(2)属性:设置不显示滚动条:Android:scrollbars="none";
(3)代码设置隐藏滚动条:setHorizontalScrollBarEnabled(false);setVerticalScrollBarEnabled(false);
(4)监听器:setOnTouchListenter()
~~~
scroll.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE: {
/**
* (1)getScrollY()————滚动条滑动的距离
* (2)getMeasuredHeight()
* (3)getHeight()
*/
// 顶部状态
if (scroll.getScrollY() <= 0) {
Log.i("Main", "滑动到顶部");
}
// 底部状态
// TextView的总高度<=一屏幕的高度+滚动条的滚动距离
if (scroll.getChildAt(0).getMeasuredHeight() <= scroll.getHeight() + scroll.getScrollY()) {
Log.i("Main", "滑动到底部");
Log.i("Main",
"scroll.getChildAt(0).getMeasuredHeight()="
+ scroll.getChildAt(0)
.getMeasuredHeight()
+ "scroll,getHeight()="
+ scroll.getHeight()
+ "scroll.getScrollY()="
+ scroll.getScrollY());
tv.append(getResources().getString(R.string.content)); // 刷新、追加
}
break;
}
}
return false;
}
});
}
~~~
(5)scrollTo和scrollBy
scrollTo:以滚动视图起始位置开始计算;
scrollBy:相对前一次的位置,去滚动相应距离
### 3、Gallery——缩略图浏览器
[http://blog.csdn.net/songshimvp1/article/details/50233727](http://blog.csdn.net/songshimvp1/article/details/50233727)——实际案例
### 4、SeekBar——拖动条
(1)方法:setMax:设置最大数值;
(2)事件监听:OnSeekBarChangeListenter监听三个事件:
A. onProgressChanged(); //数值改变
B. onStartTrackingTouch(); //开始拖动
C. onStopTrackingTouch(); //停止拖动
(3)自定义SeekBar
看不到源码时,可以在G:\AndroidWork\adt-bundle-windows-x86-20130917\sdk\platforms\android-18\data\res\drawable中查找!