34、滑动界面 style、GestureDetector、overridePendingTransition()、anim、按钮图片变更(button_select)
来源:互联网 发布:制作生日快乐的软件 编辑:程序博客网 时间:2024/06/04 19:22
------------------------main.java---------------------------------
package com.example.flliper;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
public class MainActivity extends ActionBarActivity {
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sp = getSharedPreferences("config", MODE_PRIVATE);
//判断一下,是否做过设置向导,如果没有做过,就跳转到设置向导页面去设置,否则就留着当前的页面
boolean configed = sp.getBoolean("configed", false);
if(configed){
// 就在手机防盗页面
setContentView(R.layout.activity_main);
}else{
//还没有做过设置向导
Intent intent = new Intent(this,Setup1Activity.class);
startActivity(intent);
//关闭当前页面
finish();
}
}
/**
* 重新进入手机防盗设置向导页面
* @param view
*/
public void reEnterSetupOnclick(View view){
Intent intent = new Intent(this,Setup1Activity.class);
startActivity(intent);
//关闭当前页面
finish();
}
}
--------------------------------BaseSetupActivity.java---------是下面3个activity 的父类------------------
package com.example.flliper;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;
public abstract class BaseSetupActivity extends Activity {
//1.定义一个手势识别器
private GestureDetector detector;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//2.实例化这个手势识别器
detector = new GestureDetector(this, new SimpleOnGestureListener(){
/**
* 当我们的手指在上面滑动的时候回调
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
//屏蔽在X滑动很慢的情形
if(Math.abs(velocityX)<200){
Toast.makeText(getApplicationContext(), "滑动得太慢了", 0).show();
return true;
}
//屏蔽斜滑这种情况
if(Math.abs((e2.getRawY() - e1.getRawY())) > 100){
Toast.makeText(getApplicationContext(), "不能这样滑", 0).show();
return true;
}
if((e2.getRawX() - e1.getRawX())> 200 ){
//显示上一个页面:从左往右滑动
System.out.println("显示上一个页面:从左往右滑动");
showPre();
return true;
}
if((e1.getRawX()-e2.getRawX()) > 200 ){
//显示下一个页面:从右往左滑动
System.out.println("显示下一个页面:从右往左滑动");
showNext();
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
}
public abstract void showNext();
public abstract void showPre();
/**
* 下一步的点击事件
* @param view
*/
public void next(View view){
showNext();
}
/**
* 上一步
* @param view
*/
public void pre(View view){
showPre();
}
//3.使用手势识别器
@Override
public boolean onTouchEvent(MotionEvent event) {
detector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}
-------------------------------Setup1Activity.java-------------------------
package com.example.flliper;
import android.content.Intent;
import android.os.Bundle;
public class Setup1Activity extends BaseSetupActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup1);
}
@Override
public void showNext() {
Intent intent = new Intent(this,Setup2Activity.class);
startActivity(intent);
finish();
//要求在finish()或者startActivity(intent);后面执行;
overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
}
@Override
public void showPre() {
}
}
--------------------------Setup2Activity.java----------------------
package com.example.flliper;
import android.content.Intent;
import android.os.Bundle;
public class Setup2Activity extends BaseSetupActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup2);
}
@Override
public void showNext() {
Intent intent = new Intent(this,Setup3Activity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
}
@Override
public void showPre() {
Intent intent = new Intent(this,Setup1Activity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);
}
}
------------------------Setup3Activity.java------------------------
package com.example.flliper;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
public class Setup3Activity extends BaseSetupActivity {
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup3);
sp = getSharedPreferences("config", MODE_PRIVATE);
}
@Override
public void showNext() {
Editor editor = sp.edit();
editor.putBoolean("configed", true);
editor.commit();
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
}
@Override
public void showPre() {
Intent intent = new Intent(this,Setup2Activity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);
}
}
。。。。。。。。main.xml。。。。。。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="mainmain"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="reEnterSetupOnclick"
android:text="进入滑动界面" />
</LinearLayout>
。。。。。。。。。。。。。。activity_setup1.xml。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="111111" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_online" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
</LinearLayout>
<Button
style="@style/button_next_style"
/>
</LinearLayout>
。。。。。。。。。。。。。。activity_setup2.xml。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2222" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_online" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
</LinearLayout>
<Button
style="@style/button_pre_style"
/>
<Button
style="@style/button_next_style"
/>
</LinearLayout>
。。。。。。。。。。。。。activity_setup3.xml。。。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="33333"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_invisible" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/presence_online" />
</LinearLayout>
<Button style="@style/button_pre_style" />
<Button style="@style/button_next_style" />
</LinearLayout>
。。。。。。。。。。。。res/drawable_hdpi/button_select.xml。。。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/function_greenbutton_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/function_greenbutton_pressed" /> <!-- focused -->
<item android:drawable="@drawable/function_greenbutton_normal" /> <!-- default -->
</selector>
。。。。。。。。。。。。。。。。。往styles.xml里面加如下代码
<!-- 自定义样式 -->
<style name="text_title_style">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">50dip</item>
<item name="android:background">#8866ff00</item>
<item name="android:gravity">center</item>
<item name="android:textSize">22sp</item>
</style>
<style name="text_content_style">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">18sp</item>
<item name="android:textColor">#000000</item>
<item name="android:layout_marginLeft">5dip</item>
<item name="android:layout_marginTop">5dip</item>
<item name="android:gravity">center_vertical</item>
</style>
<!-- 下一步按钮的样式 -->
<style name="button_next_style">
<item name="android:onClick">next</item>
<item name="android:background">@drawable/button_select</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:drawableRight">@drawable/next</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:text">下一步</item>
</style>
<!-- 上一步按钮的样式 -->
<style name="button_pre_style">
<item name="android:onClick">pre</item>
<item name="android:background">@drawable/button_select</item>
<item name="android:layout_alignParentLeft">true</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:drawableLeft">@drawable/previous</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:text">上一步</item>
</style>
- 34、滑动界面 style、GestureDetector、overridePendingTransition()、anim、按钮图片变更(button_select)
- 35、拦截黑名单、ViewHolder、对listView的优化、SQLiteOpenHelper、数据库的增删改查 listView&BaseAdapter、按钮变更(button_select)
- android - GestureDetector 实现界面左右滑动效果的优化
- android GestureDetector简单手势检测(左右滑动、上下滑动)
- mFromContext.overridePendingTransition(R.anim.in_from_left, R.anim.out_to_right);无动画效果的原因
- 屏幕滑动手势GestureDetector
- 滑动切换Activity(GestureDetector)
- 滑动切换Activity(GestureDetector)
- 巧用GestureDetector滑动页面
- Android-GestureDetector手势滑动
- GestureDetector 手势滑动识别
- GestureDetector识别手势滑动
- GestureDetector手势滑动识别
- 项目实战:微交互之转场动画(anim、style、theme)
- 仿网易滑动界面+仿安卓顶部滑动按钮
- 【Android开发日记】左右滑动刷新界面的思路记录 ViewPager GestureDetector
- GestureDetector +onTouch实现区域内滑动(事件分发)
- 点击按钮,缩放图片(img.width、img.style.width、img.offsetWidth)
- Java中如何让web服务器启动的时候自动运行web程序中某个类的某个方法
- 虚拟机安装Mac和连接网络
- javaweb 文件上传和下载
- Chrome自带移动设备模拟器,适合移动端网页开发
- ArrayList的remove方法的一个特性
- 34、滑动界面 style、GestureDetector、overridePendingTransition()、anim、按钮图片变更(button_select)
- cocos2dx之lua项目开发中MVC框架的简单应用
- swift switch的几点用法
- 【导航】请戳我!
- 什么是 Web 框架?
- handler与异步任务
- private、默认、protected、public
- 创建一个自定义的Annotation
- SQL面试题收录