当前位置:首页 » 安卓系统 » flingandroid

flingandroid

发布时间: 2022-05-07 19:15:24

A. Android Gallery setSelection和onFling方法的区别

让gallery自动滚动可以通过以下两种方法实现:

一、使用Timer和TimerTask类来完成图片的自动定时滚动:

思路:循环调用Gallery类的onFling()方法。

代码:

<span style="white-space:pre"> </span>task = new TimerTask() {

@Override
public void run() {
/**
* 参数1和2:手指在gallery上的动作
* 参数3和4:x方向和y方向的滚动的速度,-数表示向左滚,+数表示向右
*/
gallery.onFling(null, null, -750, 0);
}
};
timer.schele(task, 1000, 5000);
<span style="font-size:32px;"><strong>
</strong></span>
<span style="font-size:32px;"><strong>方式2:</strong></span>

二、使用Handler消息机制完成

思路:子线程内死循环使用handler每隔多长时间向主线程发送消息,通知gallery改变位置。

代码:

子线程部分:
<span style="white-space:pre"> new Thread(new Runnable() {
<span style="white-space:pre"> </span>int flag = 1;
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public void run() {
<span style="white-space:pre"> </span>while (isalive) {
<span style="white-space:pre"> </span>//images为装图片的集合
<span style="white-space:pre"> </span>if ((cur_index + 1) == images.size()) {
<span style="white-space:pre"> </span>flag = -1;
<span style="white-space:pre"> </span>} else if (cur_index == 0) {
<span style="white-space:pre"> </span>flag = 1;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>Message msg = handler.obtainMessage(MSG_UPDATE, cur_index,
<span style="white-space:pre"> </span>0);
<span style="white-space:pre"> </span>handler.sendMessage(msg);
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>Thread.sleep(4000);
<span style="white-space:pre"> </span>} catch (InterruptedException e) {
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>switch (flag) {
<span style="white-space:pre"> </span>case 1:
<span style="white-space:pre"> </span>cur_index++;
<span style="white-space:pre"> </span>break;
<span style="white-space:pre"> </span>case -1:
<span style="white-space:pre"> </span>cur_index--;
<span style="white-space:pre"> </span>break;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}).start();</span>
主线程部分:
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == MSG_UPDATE) {
gallery.setSelection(msg.arg1);
}
}
};

B. Android 里的手势监听SimpleOnGestureListener 绑定到LinearLayout 或 RelativeLayout 不触发 onFling()

让OnTouch方法 返回 true;
这样写试试
public boolean onTouch(View v, MotionEvent event) {
detector.onTouchEvent(event);
return true;

}
不行的话 你了解下这些事件里返回值的意义,懂了 就有解决思路了

C. android 关于手势事件onFling

touch事件中先return给手势事件(return gestureDetector.onTouchEvent(event); ),在onFling中判断,如果速度大于一个值就执行,应该就可以的

D. android onfling和onscroll有什么关系

不是的。
onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY):滑动手势事件;
(6) onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY):在屏幕上拖动事件
在网上搜到的关于onFling和onScroll的一点区别。
onFling()是甩,这个甩的动作是在一个MotionEvent.ACTION_UP(手指抬起)发生时执行,而onScroll(),只要手指移动就会执行。他不会执行MotionEvent.ACTION_UP。onFling通常用来实现翻页效果,而onScroll通常用来实现放大缩小和移动。

E. onFling与onclick同在时,怎么屏蔽onclick-Android 问题&解答

定义一个全局变量isFing=false 重写ViewFlipper 中的onInterceptTouchEvent方法。 判断。当event.getAction() == MotionEvent.ACTION_DOWN 时 isFling =false 当event.getAction()==MotionEv.ACTION_MOVE时 isFling=true. 当 event.getAction()==MotionEvent.ACTION_UP时判断isFling . 当isFling为true时返回true,为假时返回false. 图片的setOnClickListenter改为setOnTouchListener(). 在onTouch里判断当event.getAction==MotionEvent.ACTION_UP 时才处理触摸事件.
flipper = new ViewFlipper(this){
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
System.out.println("onInterceptTouchEvent");
int action = ev.getAction();
switch(action){
case MotionEvent.ACTION_DOWN:
System.out.println("onInterceptTouchEvent action:ACTION_DOWN");
break;
case MotionEvent.ACTION_MOVE:
isfling=true;
System.out.println("onInterceptTouchEvent action:ACTION_MOVE");
break;
case MotionEvent.ACTION_UP:
System.out.println("onInterceptTouchEvent action:ACTION_UP");
System.out.println("ACTION_UP :"+isfling);
if(isfling){
return true;
}
case MotionEvent.ACTION_CANCEL:
System.out.println("onInterceptTouchEvent action:ACTION_CANCEL");

break;
}
return false;
}

};

image.setImageResource(R.drawable.icon);
image.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
image.setOnTouchListener(new View.OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(action ==MotionEvent.ACTION_UP){
System.out.println("图片点击");
}
return true;
}
});

flipper.addView(image);

F. 请教Android中fling滑动的数学公式含义

1、 每份数×份数=总数 总数÷每份数=份数总数÷份数=每份数 2、 1倍数×倍数=几倍数 几倍数÷1倍数=倍数几倍数÷倍数=1倍数 3、 速度×时间=路程 路程÷速度=时间 路程÷时间=速度 4、 单价×数量=总价 总价÷单价=数量 总价÷数量=单价 5、 工作效率×工作时间=工作总量 工作总量÷工作效率=工作时间工作总量÷工作时间=工作效率 6、 加数+加数=和 和-一个加数=另一个加数 7、 被减数-减数=差 被减数-差=减数 差+减数=被减数 8、 因数×因数=积 积÷一个因数=另一个因数 9、 被除数÷除数=商 被除数÷商=除数 商×除数=被除数 小学数学图形计算公式 1 、正方形 C周长 S面积 a边长 周长=边长×4 C=4a 面积=边长×边长 S=a×a 2 、正方体 V:体积 a:棱长 表面积=棱长×棱长×6 S表=a×a×6 体积=棱长×棱长×棱长 V=a×a×a 3 、长方形 C周长 S面积 a边长 周长=(长+宽)×2 C=2(a+b) 面积=长×宽 S=ab 4 、长方体 V:体积 s:面积 a:长 b: 宽 h:高 (1)表面积(长×宽+长×高+宽×高)×2 S=2(ab+ah+bh) (2)体积=长×宽×高 V=abh 5 三角形 s面积 a底 h高 面积=底×高÷2 s=ah÷2 三角形高=面积 ×2÷底 三角形底=面积 ×2÷高 6 平行四边形 s面积 a底 h高 面积=底×高 s=ah 7 梯形 s面积 a上底 b下底 h高 面积=(上底+下底)×高÷2 s=(a+b)× h÷2 8 圆形 S面积 C周长 ∏ d=直径 r=半径 (1)周长=直径×∏=2×∏×半径 C=∏d=2∏r (2)面积=半径×半径×∏ 9 圆柱体 v:体积 h:高 s;底面积 r:底面半径 c:底面周长 (1)侧面积=底面周长×高 (2)表面积=侧面积+底面积×2 (3)体积=底面积×高 (4)体积=侧面积÷2×半径 10 圆锥体 v:体积 h:高 s;底面积 r:底面半径 体积=底面积×高÷3 总数÷总份数=平均数 和差问题的公式 (和+差)÷2=大数 (和-差)÷2=小数 和倍问题 和÷(倍数-1)=小数 小数×倍数=大数 (或者 和-小数=大数) 差倍问题 差÷(倍数-1)=小数 小数×倍数=大数 (或 小数+差=大数) 植树问题 1 非封闭线路上的植树问题主要可分为以下三种情形: ⑴如果在非封闭线路的两端都要植树,那么: 株数=段数+1=全长÷株距-1 全长=株距×(株数-1) 株距=全长÷(株数-1) ⑵如果在非封闭线路的一端要植树,另一端不要植树,那么: 株数=段数=全长÷株距 全长=株距×株数 株距=全长÷株数 ⑶如果在非封闭线路的两端都不要植树,那么: 株数=段数-1=全长÷株距-1 全长=株距×(株数+1) 株距=全长÷(株数+1) 2 封闭线路上的植树问题的数量关系如下 株数=段数=全长÷株距 全长=株距×株数 株距=全长÷株数 盈亏问题 (盈+亏)÷两次分配量之差=参加分配的份数 (大盈-小盈)÷两次分配量之差=参加分配的份数 (大亏-小亏)÷两次分配量之差=参加分配的份数 相遇问题 相遇路程=速度和×相遇时间 相遇时间=相遇路程÷速度和 速度和=相遇路程÷相遇时间 追及问题 追及距离=速度差×追及时间 追及时间=追及距离÷速度差 速度差=追及距离÷追及时间 流水问题 顺流速度=静水速度+水流速度 逆流速度=静水速度-水流速度 静水速度=(顺流速度+逆流速度)÷2 水流速度=(顺流速度-逆流速度)÷2 浓度问题 溶质的重量+溶剂的重量=溶液的重量 溶质的重量÷溶液的重量×100%=浓度 溶液的重量×浓度=溶质的重量 溶质的重量÷浓度=溶液的重量 利润与折扣问题 利润=售出价-成本 利润率=利润÷成本×100%=(售出价÷成本-1)×100% 涨跌金额=本金×涨跌百分比 折扣=实际售价÷原售价×100%(折扣<1) 利息=本金×利率×时间 税后利息=本金×利率×时间×(1-20%) 长度单位换算 1千米=1000米 1米=10分米 1分米=10厘米 1米=100厘米 1厘米=10毫米 面积单位换算 1平方千米=100公顷 1公顷=10000平方米 1平方米=100平方分米 1平方分米=100平方厘米 1平方厘米=100平方毫米 体(容)积单位换算 1立方米=1000立方分米 1立方分米=1000立方厘米 1立方分米=1升 1立方厘米=1毫升 1立方米=1000升 重量单位换算 1吨=1000 千克 1千克=1000克 1千克=1公斤 人民币单位换算 1元=10角 1角=10分 1元=100分 时间单位换算 1世纪=100年 1年=12月 大月(31天)有:1\3\5\7\8\10\12月 小月(30天)的有:4\6\9\11月 平年2月28天, 闰年2月29天 平年全年365天, 闰年全年366天 1日=24小时 1时=60分 1分=60秒 1时=3600秒 小学数学几何形体周长 面积 体积计算公式 1、长方形的周长=(长+宽)×2 C=(a+b)×2 2、正方形的周长=边长×4 C=4a 3、长方形的面积=长×宽 S=ab 4、正方形的面积=边长×边长 S=a.a= a 5、三角形的面积=底×高÷2 S=ah÷2 6、平行四边形的面积=底×高 S=ah 7、梯形的面积=(上底+下底)×高÷2 S=(a+b)h÷2 8、直径=半径×2 d=2r 半径=直径÷2 r= d÷2 9、圆的周长=圆周率×直径=圆周率×半径×2 c=πd =2πr 10、圆的面积=圆周率×半径×半径

G. android scroller fling 滑多远

Scroller主要用于平滑滚动,主要使用的滚动方法有:startScroll、fling。

startScroll(int startX, int startY, int dx, int dy, int ration):
指定起点(startX,startY),从起点平滑变化(dx,dy),耗时ration,通常用于:知道起点与需要改变的距离的平滑滚动等。

H. 如何在android中实现swipe的手势功能及页面拖动动画

SimpleOnGestureListener. 你只需要实现自己所关心的手势就可以了.
Swipe在android里面是叫Fling ^_^
首先创建自己的一个手势detector类:

private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200;然后在onFling方法中, 判断是不是一个合理的swipe动作: if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut); viewFlipper.showNext(); } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut); viewFlipper.showPrevious(); }里的viewFlipper是含有多个view的一个container, 可以很方便的调用prev/next view, 加上animation动画, 可以达到一些不错的效果:
viewFlipper = (ViewFlipper)findViewById(R.id.flipper); slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in); slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out); slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in); slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out); 自定义的animation可以查看具体的XML, 比如从左边进来的一个动画:

I. android里不同的activity可以实现滑屏的效果吗好像viewfling时同一个Activity的切换把

通常情况下是用ViewPager+Fragment来实现滑屏的效果。

1.Fragment是android3.0引入的新控件,果应用使用在3.0以下、1.6及以上的版本,需要引入v4包。

2.Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。

3.Fragment的生命周期方法依赖于Activity的生命周期,例如一个Activity的onPause()的生命周期方法被调用的时候这个Activity中的所有的Fragment的onPause()方法也将被调用。

4.FragmentManager提供了对Activity运行时的Fragment的添加、删除、替换的操作。在Activity运行期间可以添加Fragment而不是在XML布局文件中进行定义。如果打算在Activity中改变Fragment的生命过程。如果要执行添加、删除、修改的操作,必须通过FragmentManager的对象获得一个FragmentTransaction对象,通过它的API来执行这些操作。

5.两个单独的Fragment之间是不应该进行通信的。应该使用他们所存在的Activity作为沟通的纽带。




热点内容
interbase数据库 发布:2025-05-14 13:49:50 浏览:691
微商海报源码 发布:2025-05-14 13:49:42 浏览:346
分布式缓存部署步骤 发布:2025-05-14 13:24:51 浏览:611
php获取上一月 发布:2025-05-14 13:22:52 浏览:90
购买云服务器并搭建自己网站 发布:2025-05-14 13:20:31 浏览:689
sqlserver建立视图 发布:2025-05-14 13:11:56 浏览:485
搭建httpsgit服务器搭建 发布:2025-05-14 13:09:47 浏览:256
新电脑拿回来我该怎么配置 发布:2025-05-14 13:09:45 浏览:241
视频服务器新建ftp用户 发布:2025-05-14 13:03:09 浏览:226
php花生 发布:2025-05-14 12:54:30 浏览:551