android实现上下滑动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android实现上下滑动相关的知识,希望对你有一定的参考价值。
就比如登录界面,屏幕从竖屏编程横屏之后就显示不全了,要怎么实现上下滑动,还有怎么设置锁定竖屏,最好能贴下代码,新手做android
布局最外包一层滚动条
<ScrollViewandroid:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
强制横竖屏
在配置文件中对Activity节点添加android:screenOrientation属性(landscape是横向,portrait是纵向)追问
滑动弄了下是可以成功了,不过是放在第一个layout的下面,放在最外面出错了,
还有就是锁定横竖屏的没有实现,我的配置文件中原来是没有activity这个节点的,是不是这个节点除了这个属性之外还要什么属性的,是否是放在manifest之下
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation = "landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
安卓项目不可能没有activity节点的
参考技术A 用Gallery组件xml里面给出view。
程序中用GalleryAdapter继承BaseAdapter 写出getView中你要写的逻辑.
android下滑动返回上一个页面如何实现
目前不管ANDROID,IOS都采基本采用手指朝右滑动来返回上一个页面。
例子: 网易客户端,打开一个具体新闻页面后,右滑返回到主菜单。或者IOS下微信消息列表,点击一个ITEM进入具体消息,然后右滑,返回消息列表。
以上是举得例子。不知道如何在android中实现,是用activity或者new 一个view,然后实现view的手势或者用fragment,哪位大神能够教教,最好有源码或者能把原理讲清楚也是可以的。谢谢
[java] view plaincopy
package org.sunday.slidingreturn;
import com.example.slidingreturn.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class SecondActivity extends Activity implements OnTouchListener
//手指向下滑动时的最小速度
private static final int XSPEED_MIN = 200;
//手指向下滑动时的最小距离
private static final int XDISTANCE_MIN = 150;
//记录手指按下时的横坐标。
private float xDown;
//记录手指移动时的横坐标。
private float xMove;
//用于计算手指滑动的速度。
private VelocityTracker mVelocityTracker;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Button btn = (Button) findViewById(R.id.btn_second);
btn.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
startActivity(new Intent(SecondActivity.this, ThirdActivity.class));
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
);
LinearLayout ll = (LinearLayout) findViewById(R.id.ll_second);
ll.setOnTouchListener(this);
// 转载请说明出处:http://blog.csdn.net/ff20081528/article/details/17845753
@Override
public boolean onTouch(View v, MotionEvent event)
createVelocityTracker(event);
switch (event.getAction())
case MotionEvent.ACTION_DOWN:
xDown = event.getRawX();
break;
case MotionEvent.ACTION_MOVE:
xMove = event.getRawX();
//活动的距离
int distanceX = (int) (xMove - xDown);
//获取顺时速度
int xSpeed = getScrollVelocity();
//当滑动的距离大于我们设定的最小距离且滑动的瞬间速度大于我们设定的速度时,返回到上一个activity
if(distanceX > XDISTANCE_MIN && xSpeed > XSPEED_MIN)
finish();
break;
case MotionEvent.ACTION_UP:
recycleVelocityTracker();
break;
default:
break;
return true;
/**
* 创建VelocityTracker对象,并将触摸content界面的滑动事件加入到VelocityTracker当中。
*/
private void createVelocityTracker(MotionEvent event)
if (mVelocityTracker == null)
mVelocityTracker = VelocityTracker.obtain();
mVelocityTracker.addMovement(event);
/**
* 回收VelocityTracker对象。
*/
private void recycleVelocityTracker()
mVelocityTracker.recycle();
mVelocityTracker = null;
/**
* 获取手指在content界面滑动的速度。
*
* @return 滑动速度,以每秒钟移动了多少像素值为单位。
*/
private int getScrollVelocity()
mVelocityTracker.computeCurrentVelocity(1000);
int velocity = (int) mVelocityTracker.getXVelocity();
return Math.abs(velocity);
参考技术A
图中的代码够详细了,呵呵、、、
追问前后2个页面的叠加如何做呢?就是目前的页面要退出,下面的页面要出来,目前的页面叠加在之前的页面上的感觉。
追答那个就要用到里面的切换动画了。。。一个进,一个出。移除到屏幕外面后,销毁它 finish()。
重点:动画切换,比如显示下一个界面,首先下一个界面进来,然后本身的界面出去。
需要用到的XML文件
展示其中的一个文件代码
这个网上应该有例子。 参考技术C 最简单的就是Viewpager+fragment追问
有我描述的情况的代码吗?网上找了些,不太一样。谢谢
有我描述的情况的代码吗?网上找了些,不太一样。谢谢
以上是关于android实现上下滑动的主要内容,如果未能解决你的问题,请参考以下文章