android verticalviewpager 怎么控制滑动翻页距离

android verticalviewpager 怎么控制滑动翻页距离,第1张

下面的代码片段详细说明了如何实现滑动翻页。

复制代码 代码如下:

public class ViewFlipperActivity extends Activity implements OnGestureListener {

private static final int FLING_MIN_DISTANCE = 100;

private ViewFlipper flipper;

private GestureDetector detector;

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutviewflipper);

// 注册一个GestureDetector

detector = new GestureDetector(this);

flipper = (ViewFlipper) findViewById(RidViewFlipper);

ImageView image1 = new ImageView(this);

image1setBackgroundResource(Rdrawableimage1);

// 增加第一个view

flipperaddView(image1);

ImageView image2 = new ImageView(this);

image2setBackgroundResource(Rdrawableimage2);

// 增加第二个view

flipperaddView(image2);

}

@Override

public boolean onTouchEvent(MotionEvent event) {

// 将触屏事件交给手势识别类处理

return thisdetectoronTouchEvent(event);

}

@Override

public boolean onDown(MotionEvent e) {

return false;

}

@Override

public void onShowPress(MotionEvent e) {

}

@Override

public boolean onSingleTapUp(MotionEvent e) {

return false;

}

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

float distanceY) {

return false;

}

@Override

public void onLongPress(MotionEvent e) {

}

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {

if (e1getX() - e2getX() > FLING_MIN_DISTANCE) {

//设置View进入和退出的动画效果

thisflippersetInAnimation(AnimationUtilsloadAnimation(this,

Ranimleft_in));

thisflippersetOutAnimation(AnimationUtilsloadAnimation(this,

Ranimleft_out));

thisflippershowNext();

return true;

}

if (e1getX() - e2getX() < -FLING_MIN_DISTANCE) {

thisflippersetInAnimation(AnimationUtilsloadAnimation(this,

Ranimright_in));

thisflippersetOutAnimation(AnimationUtilsloadAnimation(this,

Ranimright_out));

thisflippershowPrevious();

return true;

}

return false;

}

}

在这段代码里,创建了两个IamgeView(用来显示),加入到了ViewFlipper中。程序运行后,当用手指在屏幕上向左滑动,会显示前一个,用手指在屏幕上向右滑动,会显示下一个。实现滑动切换的主要代码都在onFling()方法中,用户按下触摸屏,快速移动后松开,就会触发这个事件。在这段代码示例中,对手指滑动的距离进行了计算,如果滑动距离大于100像素,就做切换动作,否则不做任何切换动作。

具体要看你想做什么 最简单的方法是将物体封装成个实体 然后赋予坐标属性 用线程类去控制坐标属行的变化 至于屏幕三分之一出 你可以通过系统封装好的display()函数(好像是这个)来获取屏幕的宽度和高度 然后对宽高进行的三分之一分别赋值给实体的坐标即可

可行的解决办法是:

(1) 我想到的最直接的办法是重新切一张图,理由如下:

Google官网给出的“左向箭头”的material icon,就包含上下左右间距:

(2) 看你的代码,你已经为action bar提供了自定义的布局Rlayoutmy_booking_actionbar,为什么不做的彻底一些呢?放弃使用android提供的Home键androidRidhome作为UpIndicator。

而是在这个布局中添加一个ImageView,这样就可以自定义你需要的间距离。然后实现ImageViewOnClickListener,点击时返回父activity。

private void initActionBar() {

ActionBar actionBar = getActionBar();

actionBarsetDisplayOptions(ActionBarDISPLAY_SHOW_CUSTOM);

actionBarsetCustomView(Rlayoutactionbar_crime_fragment);

View actionView = actionBargetCustomView();

ImageView upButton = (ImageView) actionViewfindViewById(RidactionBarUp);

upButtonsetOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// Providing Up Navigation,提供了一种返回父Activity的方法,

// 同时需要在manifest中增加元数据标签,来定义它的父Activity;

// 详情请参考以下链接,

// >

先说正确的获取屏幕高度方式

使用以下的方法去获取获取应用的屏幕高度

此处通过 getMetrics() 获取的高度其实是去除了虚拟按键后的高度。所以和手机的实际屏幕高度可能有差异

getReaMetrics() 则是真正原始的屏幕尺寸

先把当前的整个布局嵌套在一个layout上,然后在代码里控制之前布局的lp, 代码如下

LayoutParams lp1 = (LayoutParams) layoutgetLayoutParams();

lp1topMargin = -30;

layoutrequestLayout();

这是一种思路,希望能帮得上忙

两种方法:1、在父控件(整个屏幕的layout就是该屏幕最顶层的父控件)的属性中加上android:paddingRight=10dp;这样的话是所有存在于父控件中的子控件右边距10dp;

2、在子控件属性中加上marginRight属性和值,这是单个子控件和其他子控件或父控件的边框距

以上就是关于android verticalviewpager 怎么控制滑动翻页距离全部的内容,包括:android verticalviewpager 怎么控制滑动翻页距离、安卓游戏开发中,让一个物体在屏幕三分之一处移动,该怎么实现、如何调整Android ActionBar向上按钮与屏幕左侧的距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10167970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存