实现了在android实现左右滑动切换界面的效果
这是实现了在android实现左右滑动切换界面的效果,该效果的源码下载,请到源码天堂下载吧,喜欢的朋友可以研究一下。
布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layContain"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal"
- android:background="@drawable/bg"
- >
- <!-- android:background="#FFC0CB"-->
- <FrameLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal"
- >
- <LinearLayout
- android:id="@+id/layFirst"
- android:layout_width="400px"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- android:layout_marginBottom="50dp"
- >
- </LinearLayout>
- <LinearLayout
- android:id="@+id/laySec"
- android:layout_width="400px"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- </LinearLayout>
- <LinearLayout
- android:id="@+id/layThird"
- android:layout_width="400px"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- </LinearLayout>
- <LinearLayout
- android:id="@+id/layFourth"
- android:layout_width="400px"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- </LinearLayout>
- </LinearLayout>
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|bottom"
- android:layout_marginBottom="40dp"
- >
- <TextView
- android:id="@+id/roll_dot1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="."
- android:textSize="50dp"
- android:textColor="#ffffff"
- />
- <TextView
- android:id="@+id/roll_dot2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="."
- android:textSize="50dp"
- android:textColor="#000000"
- />
- <TextView
- android:id="@+id/roll_dot3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="."
- android:textSize="50dp"
- android:textColor="#000000"
- />
- <TextView
- android:id="@+id/roll_dot4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="."
- android:textSize="50dp"
- android:textColor="#000000"
- />
- </LinearLayout>
- </FrameLayout>
- </LinearLayout>
代码
- package com.marsor.desk;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.app.AlertDialog.Builder;
- import android.content.BroadcastReceiver;
- import android.content.ComponentName;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.content.pm.PackageInfo;
- import android.content.pm.PackageManager;
- import android.content.res.AssetManager;
- import android.content.res.Configuration;
- import android.graphics.Color;
- import android.net.Uri;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.GestureDetector;
- import android.view.GestureDetector.OnGestureListener;
- import android.view.KeyEvent;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.MotionEvent;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.View.OnTouchListener;
- import android.view.animation.TranslateAnimation;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.LinearLayout.LayoutParams;
- import android.widget.TextView;
- import android.widget.Toast;
- public class MarsorDeskActivity extends Activity {
- GestureDetector mGestureDetector;
- LinearLayout layFirst;
- LinearLayout laySec;
- LinearLayout layThird;
- LinearLayout layFourth;
- LinearLayout layContain;
- //当前显示的layout
- LinearLayout layCur;
- //左边的layout
- LinearLayout layLeft;
- //右边的layout
- LinearLayout layRight;
- int screenWidth;
- ArrayList<MyAppInfo> mApplications = new ArrayList<MyAppInfo>();
- TextView roll_dot1,roll_dot2,roll_dot3,roll_dot4;
- ArrayList<String> packagNameList ;
- private final int MENU_EXIT = 01;
- private MyReceiver receiver;
- private OnTouchListener myTouch = new OnTouchListener(){
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- return mGestureDetector.onTouchEvent(event);
- }
- };
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- initpackagNameList();
- //监听系统新安装程序的广播
- receiver = new MyReceiver();
- IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
- filter.addDataScheme("package"); //必须添加这项,否则拦截不到广播
- registerReceiver(receiver, filter);
- layContain = (LinearLayout) this.findViewById(R.id.layContain);
- layFirst = (LinearLayout) this.findViewById(R.id.layFirst);
- laySec = (LinearLayout) this.findViewById(R.id.laySec);
- layThird = (LinearLayout) this.findViewById(R.id.layThird);
- layFourth = (LinearLayout) this.findViewById(R.id.layFourth);
- roll_dot1 = (TextView) findViewById(R.id.roll_dot1);
- roll_dot2 = (TextView) findViewById(R.id.roll_dot2);
- roll_dot3 = (TextView) findViewById(R.id.roll_dot3);
- roll_dot4 = (TextView) findViewById(R.id.roll_dot4);
- layCur = layFirst;
- layLeft = null;
- layRight = laySec;
- layFirst.setOnTouchListener(myTouch);
- laySec.setOnTouchListener(myTouch);
- layThird.setOnTouchListener(myTouch);
- layFourth.setOnTouchListener(myTouch);
- //设置宽度
- screenWidth = getWindowManager().getDefaultDisplay().getWidth();
- layFirst.getLayoutParams().width = screenWidth;
- laySec.getLayoutParams().width = screenWidth;
- layThird.getLayoutParams().width = screenWidth;
- layFourth.getLayoutParams().width = screenWidth;
- mGestureDetector = new GestureDetector(this, new OnGestureListener(){
- @Override
- public boolean onDown(MotionEvent e) {
- return true;
- }
- @Override
- public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
- int x = (int) (e2.getX() - e1.getX());
- //判断方向
- boolean dir = x>0;//如果大于0,为true,说明向右移动,直接将其前一个视图的marginleft设置成0,如果是向左移动,则直接将maringleft试着称宽度的负数
- if(dir){
- if(layLeft == null)return false;
- LinearLayout.LayoutParams llp = (LayoutParams) layLeft.getLayoutParams();
- TranslateAnimation anim1 = new TranslateAnimation(llp.leftMargin,0,0,0);
- anim1.setDuration(500l);
- layLeft.startAnimation(anim1);
- //layLeft.setAnimation(anim);
- llp.setMargins(0, 0, 0, 0);
- layLeft.setLayoutParams(llp);
- if(layLeft == layFirst){
- layLeft = null;
- layCur = layFirst;
- layRight =laySec ;
- //设置屏幕下方的小点随着页面的切换而改变
- roll_dot2.setTextColor(Color.BLACK);
- roll_dot1.setTextColor(Color.WHITE);
- }else if(layLeft == laySec){
- layLeft = layFirst;
- layCur = laySec;
- layRight =layThird ;
- roll_dot3.setTextColor(Color.BLACK);
- roll_dot2.setTextColor(Color.WHITE);
- }else if(layLeft == layThird){
- layLeft = laySec;
- layCur = layThird;
- layRight =layFourth ;
- roll_dot4.setTextColor(Color.BLACK);
- roll_dot3.setTextColor(Color.WHITE);
- }
- }else{
- if(layRight == null)return false;
- LinearLayout.LayoutParams llp = (LayoutParams) layCur.getLayoutParams();
- int width = layCur.getWidth();
- TranslateAnimation anim = new TranslateAnimation(width,0,0,0);
- anim.setDuration(500l);
- layRight.startAnimation(anim);
- llp.setMargins(-width, 0, 0, 0);
- layCur.setLayoutParams(llp);
- if(layCur == layFirst){
- layLeft = layFirst;
- layCur = laySec;
- layRight =layThird ;
- roll_dot1.setTextColor(Color.BLACK);
- roll_dot2.setTextColor(Color.WHITE);
- }else if(layCur == laySec){
- layLeft = laySec;
- layCur = layThird;
- layRight = layFourth ;
- roll_dot2.setTextColor(Color.BLACK);
- roll_dot3.setTextColor(Color.WHITE);
- }else if(layCur == layThird){
- layLeft = layThird;
- layCur = layFourth;
- layRight = null ;
- roll_dot3.setTextColor(Color.BLACK);
- roll_dot4.setTextColor(Color.WHITE);
- }
- }
- return true;
- }
- @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;
- }
- });
- }
实现了在android实现左右滑动切换界面的效果的更多相关文章
- android tab之间滑动切换界面功能
1. onTouchListener(); //捕捉touch事件,比如说onDown 需要将可滑动的控件加上两个方法:(1)view.setOnTouch ...
- Fragment+ViewPager实现仿微信点击和滑动切换界面
这是在我写的新闻App中实现的界面切换 贴出切换界面的主要代码: xml代码: <span style="font-size:14px;"> <android.s ...
- 使用Android studio作按键切换界面
一.新建工程 二.新建一个按键 android:layout_width="wrap_content" android:layout_hei ...
- 转:Android ViewPager多页面滑动切换以及动画效果
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式, 白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了 ...
- Android ViewPager多页面滑动切换以及动画效果
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...
- Android——ViewPager多页面滑动切换以及动画效果
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...
- android 图片浏览器滑动切换图片
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
- android: activity之间切换的抽屉效果
之前一直用的是向左平移和向右平移的切换动画,看到别的APP那个抽屉效果,自己也弄了一个!感谢给我提供帮助的大神们! 将退出动画的参数设置为0时,进入动画则设置为向左平移,就实现了抽屉效果! 进入的动画 ...
- Android开发Activity全局切换的动画效果
切换动画 slide_left_in.xml 从左边进 --> 退出的时候使用 <?xml version="1.0" encoding="utf-8&quo ...
随机推荐
- FTA
FTA - 维基百科,自由的百科全书 FTA 维基百科,自由的百科全书 跳转至: 导航. 搜索 FTA可以指: 自由贸易协定(Free Trade Agreement) 自由贸易区(Free Tr ...
- Keepalived+Lvs+Mysql主主复制
一简单介绍 Keepalived+lvs+mysql主主复制是比較经常使用的一种Mysql高可用方案,当中lvs 提供读负载均衡,Keepalived通过虚拟vip漂移实现故障自己主动转移,而Mysq ...
- hdu1573X问题(不互素的中国剩余定理)
X问题 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- SSCTF Final PWN
比赛过去了两个月了,抽出时间,将当时的PWN给总结一下. 和线上塞的题的背景一样,只不过洞不一样了.Checksec一样,发现各种防护措施都开了. 程序模拟了简单的堆的管理,以及cookie的保护机制 ...
- idea maven jetty插件热部署
maven tomcat插件好像无法进行热部署,jetty可以如下配置实现热部署,但是idea无法进行自动编译,所以需要如下快捷键 Ctrl+Shift+F9,编译 Ctrl+F9,生成项目 < ...
- 移动平台前端开发总结(针对iphone,Android等手机)
移动平台前端开发是指针对高端智能手机(如Iphone.Android)做站点适配也就是WebApp,并非是针对普通手机开发Wap 2.0,所以在阅读本篇文章以前,你需要对webkit内核的浏览器有一定 ...
- RDLC报表系列(一) 简单的动态数据绑定和配置
RDLC系列链接 RDLC报表系列(一) 简单的动态数据绑定和配置 RDLC报表系列(二) 行分组 RDLC报表系列(三) 总计和折叠 RDLC报表系列(四) 矩阵 RDLC报表系列(五) 简单的图 ...
- pl sql练习(1)
编写函数接受参数并返回字符串:Hello $var.然后赋值给绑定变量并打印: create or replace function hello_function ( pv_whom varchar2 ...
- JQuery动态表格
功能实现:点击添加按钮,表格增加一行并给其name属性赋予的值,方便获取 点击删除,自动删除这一行 JQuery中定义一个count变量 var count = 1; function add() { ...
- Android 从AndroidManifest获取meta-data
语法如下: <meta-data android:name="string" android:resource="resource specification&qu ...