`

android中炫酷划屏事件及sqlite全部操作Demo(1)

阅读更多

1、首先设计main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/myFilpper"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	
	<LinearLayout android:orientation="vertical"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:background="@color/red">
		<TextView android:id="@+id/tv1"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:layout_gravity="center_horizontal"
			android:textColor="@drawable/black"
			android:textSize="30dip"/>
		<Spinner android:id="@+id/sp1"
			android:entries="@array/citys"
			android:layout_gravity="center_horizontal"
			android:layout_width="fill_parent"
			android:layout_height="wrap_content"/>
		<ImageView android:id="@+id/im1"
			android:src="@drawable/icon"
			android:layout_gravity="center_horizontal"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"/>
	</LinearLayout>
	
	<LinearLayout android:orientation="vertical"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:background="@color/green">
		<TextView android:id="@+id/tv2"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:layout_gravity="center_horizontal"
			android:textColor="@drawable/black"
			android:textSize="30dip"/>
		<Spinner android:id="@+id/sp2"
			android:entries="@array/citys"
			android:layout_gravity="center_horizontal"
			android:layout_width="fill_parent"
			android:layout_height="wrap_content"/>
		<ImageView android:id="@+id/im2"
			android:src="@drawable/icon"
			android:layout_gravity="center_horizontal"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"/>
	</LinearLayout>
	
	<LinearLayout android:orientation="vertical"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:background="@color/blue">
		<TextView android:id="@+id/tv3"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:layout_gravity="center_horizontal"
			android:textColor="@drawable/black"
			android:textSize="30dip"/>
		<Spinner android:id="@+id/sp3"
			android:entries="@array/citys"
			android:layout_gravity="center_horizontal"
			android:layout_width="fill_parent"
			android:layout_height="wrap_content"/>
		<ImageView android:id="@+id/im3"
			android:src="@drawable/icon"
			android:layout_gravity="center_horizontal"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"/>
	</LinearLayout>
	
</ViewFlipper>
 

2、编写界面切换是的效果(xml)

2.1、push_left_in.xml和push_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="100%p" android:toXDelta="0"
		android:duration="500" />
	<alpha android:fromAlpha="0.1" android:toAlpha="1.0"
		android:duration="500" />
</set>

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="0" android:toXDelta="-100%p"
		android:duration="500" />
	<alpha android:fromAlpha="1.0" android:toAlpha="0.1"
		android:duration="500" />
</set>
 

  2.2、push_right_in.xml和push_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="-100%p" android:toXDelta="0"
		android:duration="500" />
	<alpha android:fromAlpha="0.1" android:toAlpha="1.0"
		android:duration="500" />
</set>

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="0" android:toXDelta="100%p"
		android:duration="500" />
	<alpha android:fromAlpha="1.0" android:toAlpha="0.1"
		android:duration="500" />
</set>
   

3、编写activity实现OnGestureListener接口

 

package com.jftt;

import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.ViewFlipper;

import com.jftt.pojo.City;
import com.jftt.pojo.City_Web;
import com.jftt.pojo.WebSite;
import com.jftt.service.DBManager;

public class FlipperDemo extends Activity implements OnGestureListener {

	private ViewFlipper flipper;
	private GestureDetector detector;
	private TextView tv1, tv2, tv3;
	private Spinner sp1, sp2, sp3;
	private ImageView im1, im2, im3;
	private ArrayAdapter<String> adapter;
	private List<String> citys1, citys2, citys3;
	private DBManager dbManager;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		dbManager = new DBManager(this);
		addData();

		tv1 = (TextView) findViewById(R.id.tv1);
		tv2 = (TextView) findViewById(R.id.tv2);
		tv3 = (TextView) findViewById(R.id.tv3);
		sp1 = (Spinner) findViewById(R.id.sp1);
		sp2 = (Spinner) findViewById(R.id.sp2);
		sp3 = (Spinner) findViewById(R.id.sp3);
		im1 = (ImageView) findViewById(R.id.im1);
		im2 = (ImageView) findViewById(R.id.im2);
		im3 = (ImageView) findViewById(R.id.im3);
		detector = new GestureDetector(this);
		flipper = (ViewFlipper) findViewById(R.id.myFilpper);

		tv1.setText("拉手");
		tv2.setText("淘宝");
		tv3.setText("阿里巴巴");

		citys1 = dbManager.findCitiesByIDs(dbManager.findCityIdByWebID(1));
		Log.e("myTag", dbManager.findCityIdByWebID(1).toString());
		Log.e("myTag", dbManager.findCitiesByIDs(dbManager.findCityIdByWebID(1)).toString());
		adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_spinner_item, citys1);
		// 设置下拉样式
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		// 为下拉列表设置适配器
		sp1.setAdapter(adapter);
		// 定义子元素选择监听器
		// 为下拉列表绑定事件监听器
		sp1.setOnItemSelectedListener(new OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				im1.setImageResource(getIcon(dbManager
						.findCityPicByCityName(sp1.getSelectedItem().toString())));
			}

			@Override
			public void onNothingSelected(AdapterView<?> parent) {
			}
		});

		citys2 = dbManager.findCitiesByIDs(dbManager.findCityIdByWebID(2));
		adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_spinner_item, citys2);
		// 设置下拉样式
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		// 为下拉列表设置适配器
		sp2.setAdapter(adapter);
		// 定义子元素选择监听器
		// 为下拉列表绑定事件监听器
		sp2.setOnItemSelectedListener(new OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				im2.setImageResource(getIcon(dbManager
						.findCityPicByCityName(sp2.getSelectedItem().toString())));
			}

			@Override
			public void onNothingSelected(AdapterView<?> parent) {
			}
		});

		citys3 = dbManager.findCitiesByIDs(dbManager.findCityIdByWebID(3));
		adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_spinner_item, citys3);
		// 设置下拉样式
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		// 为下拉列表设置适配器
		sp3.setAdapter(adapter);
		// 定义子元素选择监听器
		// 为下拉列表绑定事件监听器
		sp3.setOnItemSelectedListener(new OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				im3.setImageResource(getIcon(dbManager
						.findCityPicByCityName(sp3.getSelectedItem().toString())));
			}

			@Override
			public void onNothingSelected(AdapterView<?> parent) {
			}
		});
	}

	private int getIcon(String cityName) {
		if (cityName.equals("suzhou")) {
			return R.drawable.suzhou;
		}
		if (cityName.equals("beijing")) {
			return R.drawable.beijing;
		}
		if (cityName.equals("zhengzhou")) {
			return R.drawable.zhengzhou;
		}
		if (cityName.equals("guangzhou")) {
			return R.drawable.guangzhou;
		}
		if (cityName.equals("shenzhen")) {
			return R.drawable.shenzhen;
		}
		if (cityName.equals("chengdu")) {
			return R.drawable.chengdu;
		}
		if (cityName.equals("dalian")) {
			return R.drawable.dalian;
		}
		if (cityName.equals("shanghai")) {
			return R.drawable.shanghai;
		}
		if (cityName.equals("wuhan")) {
			return R.drawable.wuhan;
		}
		return 0;
	}

	private void addData() {
		
		
		
		if (dbManager.getCwCount() == 0) {City_Web[] cityWebs = new City_Web[] { new City_Web(1, 1),
				new City_Web(3, 1), new City_Web(5, 1), new City_Web(7, 1),
				new City_Web(2, 2), new City_Web(4, 2), new City_Web(6, 2),
				new City_Web(8, 2), new City_Web(1, 3), new City_Web(3, 3),
				new City_Web(5, 3), new City_Web(7, 3), new City_Web(9, 3) };
			dbManager.insertCws(cityWebs);
		}
		if (dbManager.getCityCount() == 0) {City[] cities = new City[] { new City("苏州", "suzhou"),
				new City("北京", "beijing"), new City("郑州", "zhengzhou"),
				new City("广州", "guangzhou"), new City("深圳", "shenzhen"),
				new City("成都", "chengdu"), new City("大连", "dalian"),
				new City("上海", "shanghai"), new City("武汉", "wuhan"), };
			dbManager.insertCities(cities);
		}
		if (dbManager.getWebCount() == 0) {WebSite[] webSites = new WebSite[] {
				new WebSite("拉手", "http://www.lashou.com"),
				new WebSite("淘宝", "http://www.taobao.com"),
				new WebSite("阿里巴巴", "http://www.alibaba.com") };
			dbManager.insertWebSite(webSites);
		}
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		return detector.onTouchEvent(event);
	}

	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		if (e1.getX() - e2.getX() > 120) {
			this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,
					R.anim.push_left_in));
			this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
					R.anim.push_left_out));
			this.flipper.showNext();
			return true;
		} else if (e1.getX() - e2.getX() < -120) {
			this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,
					R.anim.push_right_in));
			this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
					R.anim.push_right_out));
			this.flipper.showPrevious();
			return true;
		}
		return false;
	}

	@Override
	public boolean onDown(MotionEvent e) {
		return false;
	}

	@Override
	public void onLongPress(MotionEvent e) {

	}

	@Override
	public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
			float distanceY) {
		return false;
	}

	@Override
	public void onShowPress(MotionEvent e) {
	}

	@Override
	public boolean onSingleTapUp(MotionEvent e) {
		return false;
	}
}

 

分享到:
评论

相关推荐

    android中炫酷划屏事件及sqlite全部操作Demo(2)

    综上所述,"android中炫酷划屏事件及sqlite全部操作Demo(2)"涵盖了Android开发中两个重要主题:划屏事件处理和SQLite数据库操作。通过理解并掌握这些知识点,开发者能够创建更互动且功能丰富的Android应用。在提供的...

    Android SQLite数据库操作Demo

    在这个"Android SQLite数据库操作Demo"中,我们将探讨如何在Android应用中创建、查询、更新和删除SQLite数据库的数据。 1. **数据库初始化** 在Android中,我们通常通过扩展SQLiteOpenHelper类来初始化SQLite...

    android Sqlite数据库操作demo

    在这个"android Sqlite数据库操作demo"中,我们可以深入理解如何在Android应用中进行SQLite的增删改查操作。 首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过继承SQLiteOpenHelper类来实现。...

    Android SQLite数据库操作demo

    本篇将基于一个名为"Android SQLite数据库操作demo"的示例项目,探讨如何在Android中进行SQLite数据库的相关操作。原作者的博客地址为http://blog.csdn.net/liuhe688/article/details/6715983。 首先,我们来看一下...

    android sqlite操作 demo

    本`android sqlite操作 demo`提供了关于如何在Android应用中使用SQLite进行数据操作的示例。 SQLite在Android中的使用通常包括以下几个步骤: 1. **创建数据库**: 首先,我们需要创建一个SQLite数据库。这通常是...

    Android操作SQLite数据库Demo

    在Demo中,可能使用了`AsyncTask`来封装数据库操作。 6. **Android Studio集成**: 使用Android Studio可以方便地管理SQLite数据库。可以借助SQLite Database Browser插件查看和编辑数据库内容,或者使用Android ...

    Android SQLite的基本操作Demo

    在实际开发中,我们还需要考虑线程安全、事务处理、错误处理等更复杂的情况,但这些基本操作是理解SQLite在Android应用中的运用的基础。通过实践和学习,开发者可以熟练掌握SQLite的使用,为应用提供高效、可靠的...

    android sqlite的升级demo

    本文将详细讲解如何在Android项目中进行SQLite数据库的升级,结合提供的"android sqlite的升级demo"来深入理解这一过程。 首先,我们需要明白SQLite数据库的版本管理。在Android中,每个SQLite数据库都有一个关联的...

    基于Android的SQLite数据库操作Demo

    本教程将详细讲解如何在Android环境中进行SQLite数据库的操作,包括创建数据库、创建表、插入数据、查询数据以及更新和删除数据。 首先,创建SQLite数据库在Android中通常是在`SQLiteOpenHelper`的子类中完成的。`...

    android存取Sqlite3数据库demo

    本篇将基于提供的"android存取Sqlite3数据库demo"进行详细的解析,帮助你快速掌握如何在Android应用中操作SQLite3数据库。 首先,我们来看看SQLite在Android中的基本使用步骤: 1. **创建数据库**: 在Android中...

    SQLite数据库操作demo

    这个"SQLite数据库操作demo"旨在提供一个基础的示例,帮助初学者了解如何在Android环境中进行SQLite数据库的创建、查询、更新和删除等基本操作。 首先,Android中的SQLite数据库操作通常涉及以下步骤: 1. **创建...

    Android的SQlite开发完整demo

    SQlite开发的完整demo,功能有: 1,建了一个表,结构是id+姓名 2,可以删除 增加 更新记录 3,解决了Android的SQlite先天不足:删除 插入后主键不能自动排序的问题 4,在数据库主界面,有“选定”按钮,点此后切换...

    android sqlite数据库 demo code

    在"android sqlite数据库 demo code"中,我们可以看到一个简单的Android应用示例,该示例演示了如何使用SQLite数据库进行数据的增删改查操作。下面将详细介绍这些关键知识点: 1. **SQLiteOpenHelper**: 这是...

    android基本SQLite数据库操作的增删改查demo

    在本示例"android基本SQLite数据库操作的增删改查demo"中,开发者创建了一个用于管理停车位查询的应用,其中涉及到了对SQLite数据库的基础操作:增加数据(Add)、查询数据(Query)、删除数据(Delete)以及修改...

    android sqlite3 demo

    这个"android sqlite3 demo"是一个完整的示例项目,旨在帮助初学者理解如何在Android应用中有效地使用SQLite3进行数据的增删改查操作。 首先,我们来了解一下SQLite3在Android中的基本用法。在Android应用中,...

    Android Sqlite demo

    总结来说,"Android Sqlite demo"展示了如何在Android应用中使用SQLite进行数据库操作,包括创建数据库、定义表、插入、查询、更新和删除数据,以及事务处理等。开发者可以通过这个示例学习到Android环境下SQLite的...

    sqlite3 简易DEMO

    7. **编译与链接**:DEMO中可能包含编译和链接SQLite3库的步骤,如`-lsqlite3`链接选项的使用。 通过研究这个DEMO,开发者可以掌握SQLite3的基本用法,包括数据库的打开和关闭、SQL语句的执行、数据的读写等核心...

Global site tag (gtag.js) - Google Analytics