- ppt做出滚动播放的效果:ppt中怎么让几张ppt滚动播放?
- ppt下一页:年中汇报PPT不会做?我们花一个月,做了一套80页的定制级PPT模板包!
- ppt课件制作:PPT课件制作— 五招助你做出完美的PPT课件
- ppt背景图片大全:四张唯美艺术花卉幻灯片背景图片
下面的是PPT教程网给你带来的相关内容:
ppt播放下图片的随意拖动:Android实现随意拖动View+ViewGroup效果(亲验可行)
由于现在做一个拖拽效果的实现,发现网上的例子只有 View 的拖拽,但是没有 的拖拽ppt播放下图片的随意拖动,为了回报社区,我也分享一下这两个效果!!
View的拖拽
代码如下ppt播放下图片的随意拖动:Android实现随意拖动View+ViewGroup效果(亲验可行),如果是View 主要是处理他的View 的触摸时间,然后 重新摆放位置即可
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
if (this.isEnabled()) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isDrag = false;
downX = event.getX();
downY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
Log.e("kid", "ACTION_MOVE");
final float xDistance = event.getX() - downX;
final float yDistance = event.getY() - downY;
int l, r, t, b;
//当水平或者垂直滑动距离大于10,才算拖动事件
if (Math.abs(xDistance) > 10 || Math.abs(yDistance) > 10) {
Log.e("kid", "Drag");
isDrag = true;
l = (int) (getLeft() + xDistance);
r = l + width;
t = (int) (getTop() + yDistance);
b = t + height;
//不划出边界判断,此处应按照项目实际情况,因为本项目需求移动的位置是手机全屏,
// 所以才能这么写,如果是固定区域,要得到父控件的宽高位置后再做处理
if (l < 0) {
l = 0;
r = l + width;
} else if (r > screenWidth) {
r = screenWidth;
l = r - width;
}
if (t < 0) {
t = 0;
b = t + height;
} else if (b > screenHeight) {
b = screenHeight;
t = b - height;
}
this.layout(l, t, r, b);
}
break;
case MotionEvent.ACTION_UP:
setPressed(false);
break;
case MotionEvent.ACTION_CANCEL:
setPressed(false);
break;
}
return true;
}
return false;
}
的拖拽
如果是 的话,需要处理分发的事件当时遇到的问题如下
如果子View 处理的 会有问题2.如果父控件有别的时间,如要
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
getParent().requestDisallowInterceptTouchEvent(true);
Boolean flag = handleEvent(event);
if (flag) {
return true;
} else {
return super.dispatchTouchEvent(event);
}
}
@Nullable
private Boolean handleEvent(MotionEvent event) {
boolean result = false;
if (this.isEnabled()) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isDrag = false;
downX = event.getX();
downY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
Log.d(TAG, "====>>> ACTION_MOVE");
final float xDistance = event.getX() - downX;
final float yDistance = event.getY() - downY;
int l, r, t, b;
//当水平或者垂直滑动距离大于10,才算拖动事件
if (Math.abs(xDistance) > scaledTouchSlop || Math.abs(yDistance) > scaledTouchSlop) {
Log.d(TAG, "====>>> Drag: ");
isDrag = true;
l = (int) (getLeft() + xDistance);
r = l + width;
t = (int) (getTop() + yDistance);
b = t + height;
//不划出边界判断,此处应按照项目实际情况,因为本项目需求移动的位置是手机全屏,
// 所以才能这么写,如果是固定区域,要得到父控件的宽高位置后再做处理
if (l < 0) {
l = 0;
r = l + width;
} else if (r > screenWidth) {
r = screenWidth;
l = r - width;
}
if (t < 0) {
t = 0;
b = t + height;
} else if (b > screenHeight) {
b = screenHeight;
t = b - height;
}
this.layout(l, t, r, b);
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
break;
}
}
return isDrag;
}
完整代码获取方式如下:
感谢你支持pptjcw.com网,我们将努力持续给你带路更多优秀实用教程!
上一篇:ppt播放自动跳动怎么办:怎么取消ppt自动放映 下一篇:没有了
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。