导航:首页 > 操作系统 > android界面左右滑动切换

android界面左右滑动切换

发布时间:2022-09-26 06:14:01

‘壹’ 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:使用ViewPager实现左右滑动切换图片加点点

< android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
< /android.support.v4.view.ViewPager>

< /RelativeLayout >

public class MainActivity extends Activity {
private ViewPager viewPager;
private ArrayList<View> pageview;

}

‘叁’ android 左右滑屏怎么实现 哪位大神教教我

代码如下:
package kexc.scroll;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.widget.Scroller;
/**
* 仿Launcher中的WorkSapce,可以左右滑动切换屏幕的类
*
*/
public class ScrollLayout extends ViewGroup {
/*
* onMeasure方法在控件的父元素正要放置它的子控件时调用。它会问一个问题,“你想要用多大地方啊?”,然后传入两个参数——
* widthMeasureSpec和heightMeasureSpec。它们指明控件可获得的空间以及关于这个空间描述的元数据。
* 比返回一个结果要好的方法是你传递View的高度和宽度到setMeasuredDimension方法里。
* 一个MeasureSpec包含一个尺寸和模式。
* 有三种可能的模式:
* UNSPECIFIED:父布局没有给子布局任何限制,子布局可以任意大小。
* EXACTLY:父布局决定子布局的确切大小。不论子布局多大,它都必须限制在这个界限里。
* AT_MOST:子布局可以根据自己的大小选择任意大小。
*/
/*
* VelocityTracker类
*
* 功能: 根据触摸位置计算每像素的移动速率。
*
* 常用方法有:
*
* public void addMovement (MotionEvent ev) 功能:添加触摸对象MotionEvent , 用于计算触摸速率。
* public void computeCurrentVelocity (int units)
* 功能:以每像素units单位考核移动速率。额,其实我也不太懂,赋予值1000即可。 参照源码 该units的意思如下: 参数 units :
* The units you would like the velocity in. A value of 1 provides pixels
* per millisecond, 1000 provides pixels per second, etc. public float
* getXVelocity () 功能:获得X轴方向的移动速率。
*/
/*
* ViewConfiguration类
*
* 功能: 获得一些关于timeouts(时间)、sizes(大小)、distances(距离)的标准常量值 。
*
* 常用方法:
*
* public int getScaledEdgeSlop()
*
* 说明:获得一个触摸移动的最小像素值。也就是说,只有超过了这个值,才代表我们该滑屏处理了。
*
* public static int getLongPressTimeout()
*
* 说明:获得一个执行长按事件监听(onLongClickListener)的值。也就是说,对某个View按下触摸时,只有超过了
*
* 这个时间值在,才表示我们该对该View回调长按事件了;否则,小于这个时间点松开手指,只执行onClick监听
*/
private static final String TAG = "ScrollLayout";
private Scroller mScroller;
private VelocityTracker mVelocityTracker;
private int mCurScreen;//当前屏幕
private int mDefaultScreen = 0;
//两种状态: 是否处于滑屏状态
private static final int TOUCH_STATE_REST = 0;//静止状态
private static final int TOUCH_STATE_SCROLLING = 1;//滑屏状态
private static final int SNAP_VELOCITY = 600; //最小的滑动速率
private int mTouchState = TOUCH_STATE_REST;
private int mTouchSlop;// change 多少像素算是发生move操作
private float mLastMotionX;
private float mLastMotionY;
public ScrollLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
// TODO Auto-generated constructor stub
}
public ScrollLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
mScroller = new Scroller(context);
mCurScreen = mDefaultScreen;
//初始化一个最小滑动距离
mTouchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();
}
/**
* 生成view
*/
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
if (changed) {
int childLeft = 0;
final int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
final View childView = getChildAt(i);
if (childView.getVisibility() != View.GONE) {
final int childWidth = childView.getMeasuredWidth();
childView.layout(childLeft, 0, childLeft + childWidth,
childView.getMeasuredHeight());
childLeft += childWidth;
}
}
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
Log.e(TAG, "onMeasure");
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
final int width = MeasureSpec.getSize(widthMeasureSpec);
final int widthMode = MeasureSpec.getMode(widthMeasureSpec);
if (widthMode != MeasureSpec.EXACTLY) {
throw new IllegalStateException(
"ScrollLayout only canmCurScreen run at EXACTLY mode!");
}
final int heightMode = MeasureSpec.getMode(heightMeasureSpec);
if (heightMode != MeasureSpec.EXACTLY) {
throw new IllegalStateException(
"ScrollLayout only can run at EXACTLY mode!");
}
// The children are given the same width and height as the scrollLayout
final int count = getChildCount();
for (int i = 0; i < count; i++) {
getChildAt(i).measure(widthMeasureSpec, heightMeasureSpec);
}
// Log.e(TAG, "moving to screen "+mCurScreen);
scrollTo(mCurScreen * width, 0);
}
/**
* According to the position of current layout scroll to the destination
* page.
*/
public void snapToDestination() {
// 判断是否超过下一屏的中间位置,如果达到就抵达下一屏,否则保持在原屏幕
// 这样的一个简单公式意思是:假设当前滑屏偏移值即 scrollCurX 加上每个屏幕一半的宽度,除以每个屏幕的宽度就是
// 我们目标屏所在位置了。 假如每个屏幕宽度为320dip, 我们滑到了500dip处,很显然我们应该到达第二屏,索引值为1
// 即(500 + 320/2)/320 = 1
final int screenWidth = getWidth();
final int destScreen = (getScrollX() + screenWidth / 2) / screenWidth;
snapToScreen(destScreen);
}
public void snapToScreen(int whichScreen) {
// get the valid layout page
whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
if (getScrollX() != (whichScreen * getWidth())) {
final int delta = whichScreen * getWidth() - getScrollX();
mScroller.startScroll(getScrollX(), 0, delta, 0,
Math.abs(delta) * 5);
mCurScreen = whichScreen;
onScreenChangeListener.onScreenChange(mCurScreen);
invalidate(); // Redraw the layout
}
}
public void setToScreen(int whichScreen) {
whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
mCurScreen = whichScreen;
scrollTo(whichScreen * getWidth(), 0);
}
public int getCurScreen() {
return mCurScreen;
}
/**
* 控制view跟随手指滑动 由父视图调用用来请求子视图根据偏移值 mScrollX,mScrollY重新绘制
*/
@Override
public void computeScroll() {
// 如果返回true,表示动画还没有结束
// 因为前面startScroll,所以只有在startScroll完成时 才会为false
if (mScroller.computeScrollOffset()) {
// 产生了动画效果,根据当前值 每次滚动一点
scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
postInvalidate();
}
}
/*
* 其中:onInterceptTouchEvent()主要功能是控制触摸事件的分发,例如是子视图的点击事件还是滑动事件。
* 其他所有处理过程均在onTouchEvent()方法里实现了。 1、屏幕的滑动要根据手指的移动而移动 ----
* 主要实现在onTouchEvent()方法中
*

‘肆’ 安卓手机怎么修改界面切换特效

安卓手机界面切换特效是左右滑动切换桌面的效果。安卓手机修改界面切换特效的步骤:

1、回到手机主界面,长按主界面无图标处2到3秒;

2、进入“个性化设置”,点击进入‘’屏幕切换动画‘’;

3、选择想要的切换特效即可。

‘伍’ android平台中页面切换时如果要用触摸屏左右滑动,怎么实现

左右滑动切换是通过viewPager来实现的,完整代码查看附件。

ViewPager的数据是通过PageAdapter来装载的:

1.调用adapter.notifyDataSetChanged(); 刷新控件,但是要覆盖PagerAdapter的getItemPosition方法,并返回return POSITION_NONE;

2.利用PagerAdapter的工作机制,就是PagerAdapter的执行顺序,PagerAdapter作为ViewPager的适配器,无论ViewPager有多少页,PagerAdapter在初始化时也只初始化开始的2个View,即调用2次instantiateItem方法。而接下来每当ViewPager滑动时,PagerAdapter都会调用destroyItem方法将距离该页2个步幅以上的那个View销毁,以此保证PagerAdapter最多只管辖3个View,且当前View是3个中的中间一个,如果当前View缺少两边的View,那么就instantiateItem,如里有超过2个步幅的就destroyItem。

3.每当Adapter调用instantiateItem时,运用View.setTag方法将该View标识。当需要更新这个View的数据时,通过调用ViewPager.findViewWithTag方法找到相应的View,然后更新View中的数据。

‘陆’ android怎么实现页面的左右滑动

Android上有一个控件叫做ViewPager,该控件可以根据item的多少实现左右滑动的效果。
Android上还有一个东西叫做Fragment,这是一个依赖于Activity而又独立的页面。
综合这两个控件的特性,可以使用ViewPager+Fragment的方式,即在ViewPager里嵌入Fragment的方式,实现页面左右滑动的效果。

‘柒’ Android左右滑屏切换怎么做像uc浏览器首页那样的,左右滑动时按钮上的蓝色条也跟着动,该怎么做

滑屏 部分可以用Viewpager来实现,至于上面按钮的蓝色条,是可以通过ViewPager的pageChangeListener,监听滑动的换页进行改变

‘捌’ 安卓智能机上下滑屏怎么调成左右滑屏

你是说菜单界面?
如果手机默认的是上下滑动菜单的话,某些品牌是可以设置成左右滑动的(比如LG)
你可以在菜单界面下按设置键看看选项是否有排列方式

如果没有,可以使用其他桌面
比如
Go桌面EX
touchwiz4.0桌面(三星的桌面)
点心桌面
等都是默认的横向滑屏的
这些桌面在机锋市场,安卓市场或安卓系统自带的电子市场都可以搜索到

‘玖’ android中如何实现滑动activity如何左右滑动实现activity的切换

你是要滑动切换activity还是页面?如果是activity的话你可以给当前页面添加手势,滑动的时候实现activity的切换然后给activity添加切换动画,如果是像qq那种效果可以用tab来做,实现效果很不错,或者activitygroup,还可以用fragment来做,这些实现效果都不错。如果是页面滑动切换,可以用viewpager,这个效果很好,代码能力强就用viewgroup的滚动来实现,效果也还可以。

阅读全文

与android界面左右滑动切换相关的资料

热点内容
磁力计校正算法 浏览:491
解压缩后变小了 浏览:957
智友文件夹 浏览:81
android操作系统开发的操作系统 浏览:478
原神手机怎么改b站服务器 浏览:296
桩基箍筋加密区高度规范 浏览:91
手机樱花动漫app怎么用 浏览:382
php科学计数法转换 浏览:642
sip认证算法 浏览:785
androidapp卡顿原因 浏览:905
25编程器电路 浏览:849
安卓九是什么东西 浏览:939
隐藏nodejs命令行窗口 浏览:62
人体与写生素描pdf 浏览:883
java集合性能 浏览:143
单片机三线通信 浏览:209
昆山ug编程培训学费 浏览:628
黄色app怎么盈利的 浏览:957
怎么修改linux密码 浏览:703
国家发展中心app长什么样子 浏览:242