android点击跳到左右滑动 页面时 可以随意指定先显示第几个页面吗
2015-12-08 · 知道合伙人软件行家
关注
展开全部
可以的,左右滑动的控件就是viewPager,viewPager可以设置当前界面的。
具体设置代码:
viewPager.setCurrentItem(2); 表示转跳第三页,注意viewPager是从0开始的。
viewPager.setOffscreenPageLimit(4); 表示四个界面来回切换不会重新创建。
viewPager.getCurrentItem();表示获取当前是第几页。
2015-01-17 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517183
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
package com.easyway.buttonpageflipper;
import com.easyway.buttonpageflipper.R;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper;
/**
* Android实现带渐显按钮的左右滑动效果 自然状态下按钮不可见,触摸屏幕时显示按钮
*
* @author longgangbai
*
*/
public class ButtonpageflipperActivity extends Activity implements OnGestureListener{
// 声明两个按钮,分别代表向左和向右滑动
private ImageView btnLeft = null;
private ImageView btnRight = null;
// 设置WindowManager
private WindowManager wm = null;
private WindowManager.LayoutParams wmParams = null;
// ImageView的alpha值
private int mAlpha = 0;
private boolean isHide;
private ViewFlipper viewFlipper = null;
private GestureDetector detector;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle("Android实现渐显按钮的左右滑动效果");
viewFlipper = (ViewFlipper) this.findViewById(R.id.myViewFlipper);
detector = new GestureDetector(this);
// 初始化左右按钮
initImageButtonView();
viewFlipper.addView(addImageView(R.drawable.photo1));
viewFlipper.addView(addImageView(R.drawable.photo2));
viewFlipper.addView(addImageView(R.drawable.photo3));
viewFlipper.addView(addImageView(R.drawable.photo4));
viewFlipper.addView(addImageView(R.drawable.photo5));
}
private View addImageView(int id) {
ImageView iv = new ImageView(this);
iv.setImageResource(id);
return iv;
}
/**
* 初始化悬浮按钮
*/
private void initImageButtonView() {
// 获取WindowManager
wm = (WindowManager) getApplicationContext().getSystemService("window");
// 设置LayoutParams相关参数
wmParams = new WindowManager.LayoutParams();
// 设置window type
wmParams.type = LayoutParams.TYPE_PHONE;
// 设置图片格式,效果为背景透明
wmParams.format = PixelFormat.RGBA_8888;
// 设置Window flag参数
wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE;
// 设置x、y初始值
wmParams.x = 0;
wmParams.y = 0;
// 设置窗口长宽数据
wmParams.width = 50;
wmParams.height = 50;
// 创建左右按钮
createLeftButtonView();
createRightButtonView();
}
/**
* 设置左边按钮
*/
private void createLeftButtonView() {
btnLeft = new ImageView(this);
btnLeft.setImageResource(R.drawable.left);
btnLeft.setAlpha(0);
btnLeft.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// 上一个图像
viewFlipper.setInAnimation(ButtonpageflipperActivity.this,
R.anim.push_left_in);
viewFlipper.setOutAnimation(ButtonpageflipperActivity.this,
R.anim.push_left_out);
viewFlipper.showPrevious();
}
});
// 调整窗口
wmParams.gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL;
// 显示图像
wm.addView(btnLeft, wmParams);
}
/**
* 设置右边按钮
*/
private void createRightButtonView() {
btnRight = new ImageView(this);
btnRight.setImageResource(R.drawable.right);
btnRight.setAlpha(0);
btnRight.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// 下一个图像
viewFlipper.setInAnimation(ButtonpageflipperActivity.this,
R.anim.push_right_in);
viewFlipper.setOutAnimation(ButtonpageflipperActivity.this,
R.anim.push_right_out);
viewFlipper.showNext();
}
});
// 调整窗口
wmParams.gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL;
// 显示图像
wm.addView(btnRight, wmParams);
}
/**
* 设置按钮渐显效果
*/
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 1 && mAlpha < 255) {
// 通过设置不透明度设置按钮的渐显效果
mAlpha += 50;
if (mAlpha > 255)
mAlpha = 255;
btnLeft.setAlpha(mAlpha);
btnLeft.invalidate();
btnRight.setAlpha(mAlpha);
btnRight.invalidate();
if (!isHide && mAlpha < 255)
mHandler.sendEmptyMessageDelayed(1, 100);
} else if (msg.what == 0 && mAlpha > 0) {
mAlpha -= 10;
if (mAlpha < 0)
mAlpha = 0;
btnLeft.setAlpha(mAlpha);
btnLeft.invalidate();
btnRight.setAlpha(mAlpha);
btnRight.invalidate();
if (isHide && mAlpha > 0)
mHandler.sendEmptyMessageDelayed(0, 800);
}
}
};
private void showImageButtonView() {
isHide = false;
mHandler.sendEmptyMessage(1);
}
private void hideImageButtonView() {
new Thread() {
public void run() {
try {
Thread.sleep(1500);
isHide = true;
mHandler.sendEmptyMessage(0);
} catch (Exception e) {
;
}
}
}.start();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
this.detector.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_DOWN:
showImageButtonView();
break;
case MotionEvent.ACTION_UP:
hideImageButtonView();
break;
}
return true;
}
@Override
public void onDestroy() {
super.onDestroy();
// 在程序退出(Activity销毁)时销毁窗口
wm.removeView(btnLeft);
wm.removeView(btnRight);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > 120) {
this.viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
this.viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
this.viewFlipper.showNext();
return true;
} else if (e1.getX() - e2.getX() < -120) {
this.viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));
this.viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));
this.viewFlipper.showPrevious();
return true;
}
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
}
import com.easyway.buttonpageflipper.R;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper;
/**
* Android实现带渐显按钮的左右滑动效果 自然状态下按钮不可见,触摸屏幕时显示按钮
*
* @author longgangbai
*
*/
public class ButtonpageflipperActivity extends Activity implements OnGestureListener{
// 声明两个按钮,分别代表向左和向右滑动
private ImageView btnLeft = null;
private ImageView btnRight = null;
// 设置WindowManager
private WindowManager wm = null;
private WindowManager.LayoutParams wmParams = null;
// ImageView的alpha值
private int mAlpha = 0;
private boolean isHide;
private ViewFlipper viewFlipper = null;
private GestureDetector detector;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle("Android实现渐显按钮的左右滑动效果");
viewFlipper = (ViewFlipper) this.findViewById(R.id.myViewFlipper);
detector = new GestureDetector(this);
// 初始化左右按钮
initImageButtonView();
viewFlipper.addView(addImageView(R.drawable.photo1));
viewFlipper.addView(addImageView(R.drawable.photo2));
viewFlipper.addView(addImageView(R.drawable.photo3));
viewFlipper.addView(addImageView(R.drawable.photo4));
viewFlipper.addView(addImageView(R.drawable.photo5));
}
private View addImageView(int id) {
ImageView iv = new ImageView(this);
iv.setImageResource(id);
return iv;
}
/**
* 初始化悬浮按钮
*/
private void initImageButtonView() {
// 获取WindowManager
wm = (WindowManager) getApplicationContext().getSystemService("window");
// 设置LayoutParams相关参数
wmParams = new WindowManager.LayoutParams();
// 设置window type
wmParams.type = LayoutParams.TYPE_PHONE;
// 设置图片格式,效果为背景透明
wmParams.format = PixelFormat.RGBA_8888;
// 设置Window flag参数
wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE;
// 设置x、y初始值
wmParams.x = 0;
wmParams.y = 0;
// 设置窗口长宽数据
wmParams.width = 50;
wmParams.height = 50;
// 创建左右按钮
createLeftButtonView();
createRightButtonView();
}
/**
* 设置左边按钮
*/
private void createLeftButtonView() {
btnLeft = new ImageView(this);
btnLeft.setImageResource(R.drawable.left);
btnLeft.setAlpha(0);
btnLeft.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// 上一个图像
viewFlipper.setInAnimation(ButtonpageflipperActivity.this,
R.anim.push_left_in);
viewFlipper.setOutAnimation(ButtonpageflipperActivity.this,
R.anim.push_left_out);
viewFlipper.showPrevious();
}
});
// 调整窗口
wmParams.gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL;
// 显示图像
wm.addView(btnLeft, wmParams);
}
/**
* 设置右边按钮
*/
private void createRightButtonView() {
btnRight = new ImageView(this);
btnRight.setImageResource(R.drawable.right);
btnRight.setAlpha(0);
btnRight.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// 下一个图像
viewFlipper.setInAnimation(ButtonpageflipperActivity.this,
R.anim.push_right_in);
viewFlipper.setOutAnimation(ButtonpageflipperActivity.this,
R.anim.push_right_out);
viewFlipper.showNext();
}
});
// 调整窗口
wmParams.gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL;
// 显示图像
wm.addView(btnRight, wmParams);
}
/**
* 设置按钮渐显效果
*/
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 1 && mAlpha < 255) {
// 通过设置不透明度设置按钮的渐显效果
mAlpha += 50;
if (mAlpha > 255)
mAlpha = 255;
btnLeft.setAlpha(mAlpha);
btnLeft.invalidate();
btnRight.setAlpha(mAlpha);
btnRight.invalidate();
if (!isHide && mAlpha < 255)
mHandler.sendEmptyMessageDelayed(1, 100);
} else if (msg.what == 0 && mAlpha > 0) {
mAlpha -= 10;
if (mAlpha < 0)
mAlpha = 0;
btnLeft.setAlpha(mAlpha);
btnLeft.invalidate();
btnRight.setAlpha(mAlpha);
btnRight.invalidate();
if (isHide && mAlpha > 0)
mHandler.sendEmptyMessageDelayed(0, 800);
}
}
};
private void showImageButtonView() {
isHide = false;
mHandler.sendEmptyMessage(1);
}
private void hideImageButtonView() {
new Thread() {
public void run() {
try {
Thread.sleep(1500);
isHide = true;
mHandler.sendEmptyMessage(0);
} catch (Exception e) {
;
}
}
}.start();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
this.detector.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_DOWN:
showImageButtonView();
break;
case MotionEvent.ACTION_UP:
hideImageButtonView();
break;
}
return true;
}
@Override
public void onDestroy() {
super.onDestroy();
// 在程序退出(Activity销毁)时销毁窗口
wm.removeView(btnLeft);
wm.removeView(btnRight);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > 120) {
this.viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
this.viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
this.viewFlipper.showNext();
return true;
} else if (e1.getX() - e2.getX() < -120) {
this.viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));
this.viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));
this.viewFlipper.showPrevious();
return true;
}
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询