package com.leau.app.demo.test1;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ViewFlipper;
public class Test1 extends Activity {
private ViewFlipper viewFlipper;
private String[] descriptionsArray;
private String[] titleArray;
private int selectedPosition;
private TextView textViewTitle;
private TextView textViewContent;
private FriendlyScrollView scroll;
private LayoutInflater mInflater;
private GestureDetector gestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.common_info_list_view);
InitUI();
super.onCreate(savedInstanceState);
Toast.makeText(this, R.string.hello, Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
return false;
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
finish();
}
private void InitUI(){
viewFlipper = (ViewFlipper) findViewById(R.id.viewflipper_data);
mInflater = LayoutInflater.from(this);
fillDate();
viewFlipper.addView(getContentView());
}
private void fillDate(){
selectedPosition = 0;
titleArray = getResources().getStringArray(R.array.title_array);
descriptionsArray = getResources().getStringArray(R.array.description_array);
gestureDetector = new GestureDetector(new CommonGestureListener());
}
private View getContentView() {
View contentView = new View(this);
contentView = mInflater.inflate(R.layout.common_info_item_view, null);
textViewTitle = (TextView) contentView.findViewById(R.id.text_title);
textViewContent = (TextView) contentView.findViewById(R.id.text_detail);
textViewTitle.setText(titleArray[selectedPosition]);
textViewTitle.setPadding(10, 0, 10, 0);
textViewContent.setText(descriptionsArray[selectedPosition]);
textViewContent.setPadding(10, 5, 10, 5);
scroll = (FriendlyScrollView) contentView.findViewById(R.id.scroll);
scroll.setOnTouchListener(onTouchListener);
scroll.setGestureDetector(gestureDetector);
return contentView;
}
private View.OnTouchListener onTouchListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return gestureDetector.onTouchEvent(event);
}
};
public class CommonGestureListener extends SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("QueryViewFlipper", "====> Jieqi: do onDown...");
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("QueryViewFlipper", "====> Jieqi: do onShowPress...");
super.onShowPress(e);
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("QueryViewFlipper", "----> Jieqi: do onLongPress...");
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("QueryViewFlipper", "====> Jieqi: do onSingleTapConfirmed...");
return false;
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("QueryViewFlipper", "====> Jieqi: do onSingleTapUp...");
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY){
// TODO Auto-generated method stub
Log.d("QueryViewFlipper", "====> Jieqi: do onFling...");
if (e1.getX() - e2.getX() > 100 && Math.abs(velocityX) > 50) {
//向左
selectedPosition = selectedPosition + 1 < titleArray.length ? (selectedPosition + 1) : 0;
viewFlipper.addView(getContentView());
viewFlipper.setInAnimation(AnimationControl.inFromRightAnimation());
viewFlipper.setOutAnimation(AnimationControl.outToLeftAnimation());
viewFlipper.showNext();
viewFlipper.removeViewAt(0);
} else if (e2.getX() - e1.getX() > 100 && Math.abs(velocityX) > 50) {
//向右
selectedPosition = selectedPosition > 0 ? (selectedPosition - 1) : (titleArray.length - 1);
viewFlipper.addView(getContentView());
viewFlipper.setInAnimation(AnimationControl.inFromLeftAnimation());
viewFlipper.setOutAnimation(AnimationControl.outToRightAnimation());
viewFlipper.showNext();
viewFlipper.removeViewAt(0);
}
return true;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
// TODO Auto-generated method stub
Log.d("QueryViewFlipper", "====> Jieqi: do onScroll...");
return super.onScroll(e1, e2, distanceX, distanceY);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
AndroidのViewFlipper左右手势滑动
共30个文件
class:12个
xml:5个
java:4个
4星 · 超过85%的资源 需积分: 50 19 下载量 148 浏览量
2015-04-26
20:51:30
上传
评论
收藏 66KB ZIP 举报
温馨提示
Androidの解决ViewFlipper与ScrollView滑动响应事件拦截的问题,简单实用
资源推荐
资源详情
资源评论
收起资源包目录
demo.zip (30个子文件)
demo
bin
classes.dex 10KB
com
leau
app
demo
test1
R$layout.class 499B
R$id.class 586B
R$drawable.class 415B
AnimationControl.class 2KB
R$attr.class 355B
R.class 619B
R$array.class 454B
FriendlyScrollView.class 1KB
R$string.class 470B
Test1$CommonGestureListener.class 3KB
Test1$1.class 973B
Test1.class 4KB
resources.ap_ 16KB
demo.apk 23KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
values
strings.xml 6KB
drawable-mdpi
icon.png 3KB
layout
common_info_list_view.xml 1KB
common_info_item_view.xml 1KB
main.xml 382B
assets
default.properties 364B
gen
com
leau
app
demo
test1
R.java 1KB
src
com
leau
app
demo
test1
FriendlyScrollView.java 1KB
AnimationControl.java 4KB
Test1.java 5KB
.project 840B
.classpath 280B
AndroidManifest.xml 641B
共 30 条
- 1
资源评论
- DaKa2015-07-17thanks for sharing it is useful
SteamPY
- 粉丝: 168
- 资源: 79
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功