下面的代码片段详细说明了如何实现滑动翻页。
复制代码 代码如下:
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向上按钮与屏幕左侧的距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)