当前位置:首页 » 安卓系统 » android点击滑动

android点击滑动

发布时间: 2022-10-11 05:35:14

❶ android 自定义view滑动和点击事件冲突怎么解决

在Android中,对一个View同时调用OnTouch事件和OnClick事件时,导致事件冲突,比如onClick事件打算执行A动作,OnTouch事件打算执行B动作,但是在实际使用时会发现,当调用OnTouch时,有可能会同时执行A,B两个动作,这是因为OnClick事件本身就是在OnTouch事件中发生的;在onTouch事件中,如果返回true,就不会执行onClick,返回false,就同时执行onClick方法,要想把OnTouch和onClick事件完全的区分。可能过下列方法,解决该冲突问题:
就是在 OnTouch中的MotionEvent.ACTION_DOWN 时,记录下点(X1,Y1),
在 MotionEvent.ACTION_UP 时,记录下点(X2,Y2),然后比对 俩点之间的距离,如果小于一个较小数值(比如5),就认为是Click事件,onTouch中返回false,如果距离较大,可以当作onTouch事件去处理,返回true:
示范如下:
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
x1 = event.getX();
y1 = event.getY();
}
if (event.getAction() == MotionEvent.ACTION_UP) {
x2 = event.getX();
y2 = event.getY();
if (Math.abs(x1 - x2) < 6) {
return false;// 距离较小,当作click事件来处理
}
if(Math.abs(x1 - x2) >60){ // 真正的onTouch事件
}
}
return true;// 返回true,不执行click事件
}

❷ 怎么样有滑动效果 android

android的滑动效果是通过View容器类ViewFlipper来实现的。

ViewFilpper是Android官方提供的一个View容器类,继承于ViewAnimator类,用于实现页面切换,也可以设定时间间隔,让它自动播放。
又ViewAnimator继承至于FrameLayout的,所以ViewFilpper的Layout里面可以放置多个View,继承关系如下:

1、activity的写法如下:

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.GestureDetector;

importandroid.view.MotionEvent;

importandroid.view.ViewGroup.LayoutParams;

importandroid.view.animation.Animation;

importandroid.view.animation.AnimationUtils;

importandroid.widget.ImageView;

importandroid.widget.ViewFlipper;

.view.GestureDetector.OnGestureListener{

privateint[]imgs={R.drawable.img1,R.drawable.img2,

R.drawable.img3,R.drawable.img4,R.drawable.img5};

=null;

privateViewFlipperviewFlipper=null;

privateActivitymActivity=null;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mActivity=this;

viewFlipper=(ViewFlipper)findViewById(R.id.viewflipper);

gestureDetector=newGestureDetector(this);//声明检测手势事件

for(inti=0;i<imgs.length;i++){//添加图片源

ImageViewiv=newImageView(this);

iv.setImageResource(imgs[i]);

iv.setScaleType(ImageView.ScaleType.FIT_XY);

viewFlipper.addView(iv,newLayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));

}

viewFlipper.setAutoStart(true);//设置自动播放功能(点击事件,前自动播放)

viewFlipper.setFlipInterval(3000);

if(viewFlipper.isAutoStart()&&!viewFlipper.isFlipping()){

viewFlipper.startFlipping();

}

}

@Override

publicbooleanonTouchEvent(MotionEventevent){

viewFlipper.stopFlipping();//点击事件后,停止自动播放

viewFlipper.setAutoStart(false);

returngestureDetector.onTouchEvent(event);//注册手势事件

}

@Override

publicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){

if(e2.getX()-e1.getX()>120){//从左向右滑动(左进右出)

AnimationrInAnim=AnimationUtils.loadAnimation(mActivity,R.anim.push_right_in);//向右滑动左侧进入的渐变效果(alpha0.1->1.0)

AnimationrOutAnim=AnimationUtils.loadAnimation(mActivity,R.anim.push_right_out);//向右滑动右侧滑出的渐变效果(alpha1.0->0.1)

viewFlipper.setInAnimation(rInAnim);

viewFlipper.setOutAnimation(rOutAnim);

viewFlipper.showPrevious();

returntrue;

}elseif(e2.getX()-e1.getX()<-120){//从右向左滑动(右进左出)

AnimationlInAnim=AnimationUtils.loadAnimation(mActivity,R.anim.push_left_in);//向左滑动左侧进入的渐变效果(alpha0.1->1.0)

AnimationlOutAnim=AnimationUtils.loadAnimation(mActivity,R.anim.push_left_out);//向左滑动右侧滑出的渐变效果(alpha1.0->0.1)

viewFlipper.setInAnimation(lInAnim);

viewFlipper.setOutAnimation(lOutAnim);

viewFlipper.showNext();

returntrue;

}

returntrue;

}

@Override

publicbooleanonDown(MotionEvente){

returnfalse;

}

@Override

publicvoidonLongPress(MotionEvente){

}

@Override

publicbooleanonScroll(MotionEvente1,MotionEvente2,floatdistanceX,floatdistanceY){

returnfalse;

}

@Override

publicvoidonShowPress(MotionEvente){

}

@Override

publicbooleanonSingleTapUp(MotionEvente){

returnfalse;

}

}

2、main.xml配置文件:

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical">

<ViewFlipper

android:id="@+id/viewflipper"

android:layout_width="fill_parent"

android:layout_height="fill_parent"/>

</LinearLayout>

以上完成了手势滑屏:

手势滑动屏幕动画,是通过android.view.GestureDetector类检测各种手势事件实现的,该类有两个回调接口(Interface)

A、GestureDetector.OnDoubleTapListener,用来通知DoubleTap双击事件,类似于鼠标的双击事件,接口三个抽象回调函数如下

1、onDoubleTap(MotionEvent e):DoubleTap双击手势事件后通知(触发)

2、onDoubleTapEvent(MotionEvent e):DoubleTap双击手势事件之间通知(触发),包含down、up和move事件(这里指的是在双击之间发生的事件,例如在同一个地方双击会产生DoubleTap手势,而在DoubleTap手势里面还会发生down和up事件,这两个事件由该函数通知)

3、onSingleTapConfirmed(MotionEvent e):用来判定该次点击是SingleTap而不是DoubleTap,如果连续点击两次就是DoubleTap手势;那么如果只点击一次,系统等待一段时间后没有收到第二次点击则判定该次点击为SingleTap而不是DoubleTap,此时触发的就是SingleTapConfirmed事件

❸ android 手势操作中滑动和滚动的区别

滑动一般是左右,滚动是上下,而且滑动操作范围有限,滚动范围比较大

❹ Android的listview的点击和滑动效果冲突了

ViewDragHelper.Callback做滑动效果,你是不是在这里屏蔽了onTouch

如果这里重写了onTouch 你要在onTouch里返回false这样,事件才能继续传递

还有,你想实现listView item的动画,或者滑动删除,左右滑动操作的话,建议你直接用开源框架

我这里给你上传一份,关于listView的各种动画,各种控件,你可以直接用这些源代码了

❺ Android怎样实现左右滑动

建立工程
1
打开android开发平台

2
建立新的工程,点击file. ->new->project.选择Android Application Project,点击Next.

3
填写工程名,选择创建的android版本。图例工程名为zuoyouhuadong 版本为android2.2.填好之后点击next

4
下面进入前景色和背景色等的设置,若不属性可直接点击next

5
继续点击next

6
可以编辑Activity Name名字,避免所有的工程都一个名字,运行的时候不知道都是哪一个工程。点击finish.工程创建完毕。

END
添加图片到工程
1
网上下载或者本地选取图片四张。(图片名字最好改为英文)

2
适当缩小 工程软件窗口,点击图片aa,拖放到zuoyouhuadong->res->drawable-hapi上,会提示你是否将图片复制进工程。

3
选择是OK

4
可以看到工程中已经有你的图片了。

5
按照本段2--4步骤把其他三张图片添加进工程。 添加图片的准备工作完毕。

END
代码实现左右滑动
1
目标转向主编辑框,视图界面转到代码界面。

2
代码实现左右滑动功能。主要用HorizontalScrollView 。主要代码如下:<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
android:id="@+id/ScrollView"

>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/aa"
android:layout_weight="1"
android:scaleType="fitXY" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bb"
android:scaleType="fitXY"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cc"
android:scaleType="fitXY"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/dd"
android:scaleType="fitXY"/>
</LinearLayout>
</HorizontalScrollView>全
部代码截图如下。

3
部分主要代码解析:
android:scrollbars="none" 设置是否有滑动条;
android:scaleType="fitXY" 设置图片自适应;
android:src="@drawable/aa" 设置加载的图片;
android:layout_width="wrap_content"设置宽属性;
android:layout_height="wrap_content"设置长属性。
END
运行查看效果
右键工程,点击run,等待虚拟器启动运行程序

2
解锁,查看效果 。本例中图片大小未调整,稍微欠缺一点美观效果,请读者体谅。希望大家支持,并共同学习。

❻ android点击按钮可以实现滑动功能吗

可以的:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0"
android:ration="400" />
<alpha android:fromAlpha="0" android:toAlpha="1.0"
android:ration="400" />
</set>
这就是一个从左边移出屏幕的文件,translate就是位移的属性,从100%P屏幕的最右端,平移到屏幕最左端,屏幕左边的坐标为0

❼ Android 点击空白或滑动时候关闭软键盘(有scrollview的坑)

1、一般来说直接传parent_resid就可以了。但是!!!
2、scrollview不能onclick监听,但是要监听他的点击和滑动就得用ontouch监听
3、如果parent下有个差不多占据整个屏幕的scrollview请传scrollview_resid比较好,因为parent_resid被遮挡了,监听不到。。。

❽ android点击跳到左右滑动 页面时 可以随意指定先显示第几个页面吗

可以的,左右滑动的控件就是viewPager,viewPager可以设置当前界面的。

具体设置代码:

  1. viewPager.setCurrentItem(2); 表示转跳第三页,注意viewPager是从0开始的。

  2. viewPager.setOffscreenPageLimit(4); 表示四个界面来回切换不会重新创建。

  3. viewPager.getCurrentItem();表示获取当前是第几页。

❾ android 点击滑动开关弹出spinner怎么写界面谢谢

这个容易,用framlayout将你的列表布局写好至于最上层,设置visiable=“gone或者invisiable”
给组件写一个动画让他滑下来就行了,用开关来控制滑动事件。

热点内容
360浏览器脚本 发布:2025-01-23 13:54:42 浏览:565
合拍率算法 发布:2025-01-23 13:50:59 浏览:257
access数据库期末考试 发布:2025-01-23 13:50:23 浏览:120
androiddialog背景 发布:2025-01-23 13:47:44 浏览:209
存储报表能开发吗 发布:2025-01-23 13:42:02 浏览:704
腾讯地图ftp 发布:2025-01-23 13:38:43 浏览:17
linuxif判断文件存在 发布:2025-01-23 13:35:24 浏览:997
java一个字节 发布:2025-01-23 13:33:57 浏览:485
c程序编译过程 发布:2025-01-23 13:33:54 浏览:415
微信公众平台php 发布:2025-01-23 13:31:45 浏览:658