展会信息港展会大全

android viewpage的使用 android开发教程
来源:互联网   发布日期:2015-10-02 16:51:39   浏览:3487次  

导读:android viewpage的使用在使用之前要加support.v4包哦,一般在D:\android-sdk-windows\extras\android\support\v4目录下面,好像4.0以后见工程的时候自动加载的......下面贴代码及效果图:mainactivity类代码如......

android viewpage的使用

在使用之前要加support.v4包哦,一般在D:\android-sdk-windows\extras\android\support\v4目录下面,好像4.0以后见工程的时候自动加载的......

下面贴代码及效果图:

mainactivity类代码如下:

package com.xy.viewpager;

import java.util.ArrayList;

import java.util.List;

import android.os.Bundle;

import android.os.Parcelable;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.support.v4.view.ViewPager.OnPageChangeListener;

import android.util.DisplayMetrics;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.animation.Animation;

import android.view.animation.TranslateAnimation;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.RelativeLayout;

import android.widget.TextView;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.graphics.BitmapFactory;

public class MainActivity extends Activity {

private ViewPager mPager;// 页卡内容

private List<View> listViews; // Tab页面列表

private ImageView cursor;// 动画图片

private TextView t1, t2, t3;// 页卡头标

private int offset = 0;// 动画图片偏移量

private int currIndex = 0;// 当前页卡编号

private int bmpW;// 动画图片宽度

MyPagerAdapter adapter;

LayoutInflater mInflater;

RelativeLayout rel;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.i("Viewpage", "--onCreate--");

initImageView();

initTextView();

initPageView();

}

private void initPageView() {

mInflater = getLayoutInflater();

listViews = new ArrayList<View>();

listViews.add(mInflater.inflate(R.layout.layou1, null));

listViews.add(mInflater.inflate(R.layout.layou2, null));

listViews.add(mInflater.inflate(R.layout.layou3, null));

adapter = new MyPagerAdapter(listViews);

mPager = (ViewPager) findViewById(R.id.page);

mPager.setAdapter(adapter);

mPager.setCurrentItem(0);

mPager.setOnPageChangeListener(new MyOnPageChangeListener());

}

private void initTextView() {

t1 = (TextView) findViewById(R.id.tab1);

t2 = (TextView) findViewById(R.id.tab2);

t3 = (TextView) findViewById(R.id.tab3);

t1.setOnClickListener(new MyOnClickListener(0));

t2.setOnClickListener(new MyOnClickListener(1));

t3.setOnClickListener(new MyOnClickListener(2));

}

private void initImageView() {

cursor = (ImageView) findViewById(R.id.cursor);

rel = (RelativeLayout) findViewById(R.id.layout);

bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.png)

.getWidth();

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

int screenW = dm.widthPixels;

offset = (screenW / 3 - bmpW) / 2;

// Matrix matrix = new Matrix();

// matrix.postTranslate(offset, 0);

cursor.setBackgroundResource(R.drawable.png);

// cursor.setScaleType(ScaleType.MATRIX);

// cursor.setImageMatrix(matrix);

rel.setPadding(offset, 0, 0, 0);

}

public class MyOnClickListener implements View.OnClickListener {

private int index = 0;

public MyOnClickListener(int i) {

index = i;

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

mPager.setCurrentItem(index);

}

}

public class MyPagerAdapter extends PagerAdapter implements OnClickListener {

public List<View> mListViews;

public View v1;

public View v2;

public View v3;

public Button mButton;

public MyPagerAdapter(List<View> mListViews) {

this.mListViews = mListViews;

getViewClickListener(mListViews);

}

public void getViewClickListener(List<View> listview) {

v1 = listview.get(0);

v2 = listview.get(1);

v3 = listview.get(2);

mButton = (Button) v1.findViewById(R.id.button);

mButton.setOnClickListener(this);

}

public void destroyItem(View arg0, int arg1, Object arg2) {

((ViewPager) arg0).removeView(mListViews.get(arg1));

}

public void finishUpdate(View arg0) {

}

@Override

public int getCount() {

return mListViews.size();

}

@Override

public Object instantiateItem(View arg0, int arg1) {

((ViewPager) arg0).addView(mListViews.get(arg1), 0);

return mListViews.get(arg1);

}

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

return arg0 == (arg1);

}

@Override

public void restoreState(Parcelable arg0, ClassLoader arg1) {

}

@Override

public Parcelable saveState() {

return null;

}

@Override

public void startUpdate(View arg0) {

}

@Override

public void onClick(View v) {

AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)

.setIcon(null)

.setTitle("dialog")

.setMessage("nihao")

.setPositiveButton("确定",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0,

int arg1) {

MainActivity.this.finish();

}

})

.setNegativeButton("取消",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0,

int arg1) {

}

}).create();

// 显示对话框也可以使用showDialog(int id)方法显示对话框

dialog.show();

}

}

public class MyOnPageChangeListener implements OnPageChangeListener {

int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量

int two = one * 2;// 页卡1 -> 页卡3 偏移量

@Override

public void onPageSelected(int arg0) {

Animation animation = null;

switch (arg0) {

case 0:

if (currIndex == 1) {

animation = new TranslateAnimation(one, 0, 0, 0);

} else if (currIndex == 2) {

animation = new TranslateAnimation(two, 0, 0, 0);

}

break;

case 1:

if (currIndex == 0) {

animation = new TranslateAnimation(offset, one, 0, 0);

} else if (currIndex == 2) {

animation = new TranslateAnimation(two, one, 0, 0);

}

break;

case 2:

if (currIndex == 0) {

animation = new TranslateAnimation(offset, two, 0, 0);

} else if (currIndex == 1) {

animation = new TranslateAnimation(one, two, 0, 0);

}

break;

}

currIndex = arg0;

animation.setFillAfter(true);// True:图片停在动画结束位置

animation.setDuration(300);

rel.startAnimation(animation);

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override

public void onPageScrollStateChanged(int arg0) {

}

}

}

mainlayout.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<LinearLayout

android:id="@+id/nav"

android:layout_width="fill_parent"

android:layout_height="50dp"

android:background="#efefef" >

<TextView

android:id="@+id/tab1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1.0"

android:gravity="center"

android:text="页片1"

android:textColor="#000000" />

<TextView

android:id="@+id/tab2"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1.0"

android:gravity="center"

android:text="页片2"

android:textColor="#000000" />

<TextView

android:id="@+id/tab3"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1.0"

android:gravity="center"

android:text="页片3"

android:textColor="#000000" />

</LinearLayout>

<RelativeLayout

android:id="@+id/layout"

android:layout_width="wrap_content"

android:layout_height="wrap_content" >

<ImageView

android:id="@+id/cursor"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</RelativeLayout>

<android.support.v4.view.ViewPager

android:id="@+id/page"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

</android.support.v4.view.ViewPager>

</LinearLayout>

layout1.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="#565656"

android:orientation="vertical" >

<Button

android:id="@+id/button"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="点击事件" />

</LinearLayout>

layout2.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="#abab00">

</LinearLayout>

layout3.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="#00abcd"

android:orientation="vertical" >

</LinearLayout>

四个选项卡及加载数据,代码片段

package com.cy.contact.activity;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Stack;

import org.json.JSONObject;

import org.json.JSONStringer;

import org.json.JSONTokener;

import android.app.AlertDialog;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.IntentFilter;

import android.graphics.BitmapFactory;

import android.graphics.Color;

import android.graphics.Matrix;

import android.net.Uri;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.os.Parcelable;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.support.v4.view.ViewPager.OnPageChangeListener;

import android.text.Editable;

import android.text.Spannable;

import android.text.SpannableStringBuilder;

import android.text.TextWatcher;

import android.text.style.ForegroundColorSpan;

import android.util.DisplayMetrics;

import android.view.ContextMenu;

import android.view.LayoutInflater;

import android.view.MenuItem;

import android.view.MotionEvent;

import android.view.View;

import android.view.ViewGroup;

import android.view.ContextMenu.ContextMenuInfo;

import android.view.View.OnClickListener;

import android.view.View.OnCreateContextMenuListener;

import android.view.View.OnTouchListener;

import android.view.animation.Animation;

import android.view.animation.TranslateAnimation;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ImageButton;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.RelativeLayout;

import android.widget.TextView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.AdapterView.OnItemLongClickListener;

import com.cy.contact.activity.tool.DialAdapter;

import com.cy.contact.dao.NativeCallDao;

import com.cy.contact.dao.UserDao;

import com.cy.contact.pojo.NativeUser;

import com.cy.contact.pojo.User;

import com.cy.contact.pojo.UserContent;

import com.cy.contact.usercontent.action.ActionCode;

import com.cy.contact.util.SpellUtils;

import com.j256.ormlite.dao.ForeignCollection;

/**

* 警务通讯录拨号界面

* @author yutao

*

*/

public class DialActivity extends ToolBarActivity implements OnClickListener{

//数字功能键

private RelativeLayout dialLayout;

private Button num0Btn,num1Btn,num2Btn,

num3Btn,num4Btn,num5Btn,num6Btn,

num7Btn,num8Btn,num9Btn,numStarBtn,

numPoundBtn,allRecordBtn,noCallBtn;

private Button delNumBtn;

private TextView inputBtn;

//private ListView callLogListView;

private ListView dialAllList;

private ListView dialAlreadyList;

private ListView dialOutList;

private ListView dialMissList;

private DialAdapter dialAllAdapter;

private DialAdapter dialAlreadyAdapter;

private DialAdapter dialMissAdapter;

private DialAdapter dialOutAdapter;

private ListView contactListView;//显示搜索联系人

private int currentPosition=-1;//记录通话记录点击的位置

private int searchCurrentPosition=-1;//记录T9键盘搜索联系人点击位置

private SearchContactAdapter searchAdapter;//显示联系人适配器

//private CallLogAdapter callLogAdapter;//通话记录数据适配器

private List<NativeUser> allRecordslist = new ArrayList<NativeUser>();

private List<NativeUser> missCallsList=new ArrayList<NativeUser>();

private List<NativeUser> outCallsList=new ArrayList<NativeUser>();

private List<NativeUser> listRecords=new ArrayList<NativeUser>();

Stack<String> myStack=new Stack<String>();

private static final String DAILNUMBER="dail";

private String keyWord=null;//当前搜索关键字

private NativeCallDao nadao =null;

private UserDao udao=null;

private intcallStatusFlag=0;//为true时表示显示全部通话记录状态,false时显示未接电话

private int DIALDETAIL = 1;//通话记录返回状态

private int delType= 0;//设置需要删除通话记录的类别

private RelativeLayout searchLayout;//搜索界面布局默认为invisiable

private LinearLayout searchBtnlayout;//搜索界面下按钮布局

private Button newContactBtn,saveToHaveBtn,sendMsgBtn;//新建联系人,保存到已有,发送短信

private List<User> searchListUser=new ArrayList<User>();//搜索联系人数据

//viewPager用到变量

private RelativeLayout dialPage;//viewpager和选项卡的界面

private RelativeLayout dialImageLay;

private ViewPager mPager;// ViewPager内容

private List<View> listViews; // Tab页面列表

private ImageView cursor;// 动画图片

private TextView t1, t2, t3,t4;// 页卡头标

private int offset = 0;// 动画图片偏移量

private int currIndex = 0;// 当前页卡编号

private int bmpW;// 动画图片宽度

DialPagerAdapter adapter;

LayoutInflater mInflater;

private Handler handler =new Handler(){

@Override

public void handleMessage(Message msg) {

switch(msg.what){

case 1:

initData();

break;

case 2:

initData();

break;

case 3:

initData();

break;

}

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.dial_layout);

nadao = NativeCallDao.getInstance(this);

udao=UserDao.getInstance(this);

initView();

initData();

//registerCllBroadCast();

initImageView();

initTextView();

initPageView();

}

private void initPageView() {

mInflater = getLayoutInflater();

listViews = new ArrayList<View>();

listViews.add(mInflater.inflate(R.layout.dial_all_layout, null));

listViews.add(mInflater.inflate(R.layout.dial_miss_layout, null));

listViews.add(mInflater.inflate(R.layout.dial_out_layout, null));

listViews.add(mInflater.inflate(R.layout.dial_already_layout, null));

adapter = new DialPagerAdapter(listViews);

mPager = (ViewPager) findViewById(R.id.page);

mPager.setAdapter(adapter);

mPager.setCurrentItem(0);

mPager.setOnPageChangeListener(new DialOnPageChangeListener());

}

private void initTextView() {

t1 = (TextView) findViewById(R.id.tab1);

t2 = (TextView) findViewById(R.id.tab2);

t3 = (TextView) findViewById(R.id.tab3);

t4 = (TextView) findViewById(R.id.tab4);

t1.setOnClickListener(new MyOnClickListener(0));

t2.setOnClickListener(new MyOnClickListener(1));

t3.setOnClickListener(new MyOnClickListener(2));

t4.setOnClickListener(new MyOnClickListener(3));

}

private void initImageView() {

cursor = (ImageView) findViewById(R.id.cursor);

dialImageLay = (RelativeLayout) findViewById(R.id.dialImageLay);

bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.ok)

.getWidth();

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

int screenW = dm.widthPixels;

offset = (screenW / 4 - bmpW) / 2;

cursor.setBackgroundResource(R.drawable.ok);

dialImageLay.setPadding(offset, 0, 0, 0);

}

public class MyOnClickListener implements View.OnClickListener {

private int index = 0;

public MyOnClickListener(int i) {

index = i;

}

public void onClick(View v) {

// TODO Auto-generated method stub

mPager.setCurrentItem(index);

}

}

/**

* 刷新数据

*/

/*public void initData(){

handler.postDelayed(new Runnable(){

public void run() {

allRecordslist=app.dbService.getListCall();

missCallsList=app.dbService.getMissCallsList();

}

}, 100);

}*/

public void initData(){

new Runnable(){

public void run() {

allRecordslist.clear();

missCallsList.clear();

outCallsList.clear();

List<NativeUser> la = app.dbService.getListCall();

List<NativeUser> lm = app.dbService.getMissCallsList();

List<NativeUser> lo = app.dbService.getOutCallsList();

allRecordslist.addAll(la);

missCallsList.addAll(lm);

outCallsList.addAll(lo);

System.out.println("outCallsList"+outCallsList.size());

System.out.println("lo"+lo.size());

}

}.run();

}

public void registerCllBroadCast(){

IntentFilter callFilter = new IntentFilter();

callFilter.addAction(app.UPDATE_CALL);

registerReceiver(callBrodcastResever, callFilter);

}

private BroadcastReceiver callBrodcastResever = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if(action == app.UPDATE_CALL){

app.dbService.initOrRefreshCallRecord();

app.dbService.initOrRefreshMissCall();

app.dbService.initOrRefreshOutCall();

initData();

}

}

};

/**

* 显示拨号键盘

*/

public void showDialLayout(){

if(dialLayout.getVisibility()==View.VISIBLE){

dialLayout.setVisibility(View.INVISIBLE);

}else{

dialLayout.setVisibility(View.VISIBLE);

}

}

/**

* 通话记录数据适配器

* @author yutao

*

*/

/*class CallLogAdapter extends BaseAdapter{

private Context context;

public CallLogAdapter(Context context){

this.context = context;

}

public int getCount() {

return listRecords.size();

}

public Object getItem(int position) {

return listRecords.get(position);

}

public long getItemId(int position) {

return position;

}

class ItemView{

publicImageView seeImageView;

public ImageView callImageView;

public TextViewnumberText;

public TextViewnameText;

public TextView timesText;

public TextView dateText;

public LinearLayout callPhone;

public LinearLayout message;

public LinearLayout dailMail;

public LinearLayout callrecord;

public LinearLayout callLogHide;

}

HashMap<Integer,View> lamp =newHashMap<Integer,View>();

public View getView(int position, View convertView, ViewGroup parent) {

View view;

ItemView itemView = null;

if(lamp.get(position) == null){

convertView= LayoutInflater.from(context).inflate(R.layout.list_calllog, null);

itemView = new ItemView();

itemView.seeImageView = (ImageView)convertView.findViewById(R.id.incallLogImage);

itemView.callImageView = (ImageView)convertView.findViewById(R.id.shortcut_phone);

itemView.numberText = (TextView)convertView.findViewById(R.id.callLognumber);

itemView.nameText = (TextView)convertView.findViewById(R.id.callLogName);

itemView.timesText = (TextView)convertView.findViewById(R.id.callLogTimes);

itemView.dateText = (TextView)convertView.findViewById(R.id.callLogdate);

itemView.callPhone = (LinearLayout)convertView.findViewById(R.id.callPhonelayout);

itemView.message = (LinearLayout)convertView.findViewById(R.id.smsMessage);

itemView.dailMail = (LinearLayout)convertView.findViewById(R.id.dail_email);

itemView.callrecord= (LinearLayout)convertView.findViewById(R.id.callrecord);

itemView.callLogHide=(LinearLayout)convertView.findViewById(R.id.callLogHide);

convertView.setTag(itemView);

}else{

view = lamp.get(position);

itemView = (ItemView)view.getTag();

}

final NativeUser user = listRecords.get(position);

if(user.getType()==3){

if(user.getUserName() ==null){

itemView.nameText.setTextColor(getResources().getColor(R.color.miss_dial_color));

itemView.nameText.setText("未知");

}else{

itemView.nameText.setText(user.getUserName());

itemView.nameText.setTextColor(getResources().getColor(R.color.miss_dial_color));

}

itemView.numberText.setText(user.getPhoneNumber());

itemView.dateText.setText(user.getCtreatTime());

itemView.timesText.setText("("+user.getCount()+")");

itemView.numberText.setTextColor(getResources().getColor(R.color.miss_dial_color));

itemView.dateText.setTextColor(getResources().getColor(R.color.miss_dial_color));

itemView.timesText.setTextColor(getResources().getColor(R.color.miss_dial_color));

}else{

if(user.getUserName() ==null){

itemView.nameText.setText("未知");

}else{

itemView.nameText.setText(user.getUserName());

}

itemView.numberText.setText(user.getPhoneNumber());

itemView.dateText.setText(user.getCtreatTime());

itemView.timesText.setText("("+user.getCount()+")");

}

if(currentPosition==-1){

itemView.callLogHide.setVisibility(View.GONE);

itemView.callImageView.setVisibility(View.VISIBLE);

}else if(position==currentPosition){

itemView.callLogHide.setVisibility(View.VISIBLE);

itemView.callImageView.setVisibility(View.GONE);

}else{

itemView.callLogHide.setVisibility(View.GONE);

itemView.callImageView.setVisibility(View.VISIBLE);

}

//image 打电话事件

itemView.callImageView.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

String number = user.getPhoneNumber();

if(! number.equals("")){

try{

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));

startActivity(intent);

}catch(Exception e){

e.printStackTrace();

}

}

}

});

//layout 打电话事件

itemView.callPhone.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

String number = user.getPhoneNumber();

if(! number.equals("")){

try{

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));

startActivity(intent);

}catch(Exception e){

e.printStackTrace();

}

}

}

});

//发送短信事件

itemView.message.setOnClickListener(new OnClickListener() {

String number = user.getPhoneNumber();

public void onClick(View v) {

Intent intent = new Intent(DialActivity.this,SmsDetialActivity.class);

intent.putExtra("number", number);

intent.putExtra("DAILNUMBER", DAILNUMBER);

startActivity(intent);

}

});

//通话记录详情

itemView.callrecord.setOnClickListener(new OnClickListener() {

String number = user.getPhoneNumber();

public void onClick(View v) {

Intent intent = new Intent();

intent.putExtra("number", number);

intent.putExtra("name", user.getUserName());

intent.setClass(DialActivity.this, DialRecordListAcitvity.class);

startActivityForResult(intent, DIALDETAIL);

}

});

return convertView;

}

}*/

public void initView(){

dialLayout=(RelativeLayout)findViewById(R.id.dialLayout);

num0Btn=(Button)findViewById(R.id.num0Btn);

num0Btn.setOnClickListener(this);

num1Btn=(Button)findViewById(R.id.num1Btn);

num1Btn.setOnClickListener(this);

num2Btn=(Button)findViewById(R.id.num2Btn);

num2Btn.setOnClickListener(this);

num3Btn=(Button)findViewById(R.id.num3Btn);

num3Btn.setOnClickListener(this);

num4Btn=(Button)findViewById(R.id.num4Btn);

num4Btn.setOnClickListener(this);

num5Btn=(Button)findViewById(R.id.num5Btn);

num5Btn.setOnClickListener(this);

num6Btn=(Button)findViewById(R.id.num6Btn);

num6Btn.setOnClickListener(this);

num7Btn=(Button)findViewById(R.id.num7Btn);

num7Btn.setOnClickListener(this);

num8Btn=(Button)findViewById(R.id.num8Btn);

num8Btn.setOnClickListener(this);

num9Btn=(Button)findViewById(R.id.num9Btn);

num9Btn.setOnClickListener(this);

numStarBtn=(Button)findViewById(R.id.numStarBtn);

numStarBtn.setOnClickListener(this);

numPoundBtn=(Button)findViewById(R.id.numPoundBtn);

numPoundBtn.setOnClickListener(this);

inputBtn=(TextView)findViewById(R.id.inputBtn);

inputBtn.setOnClickListener(this);

inputBtn.addTextChangedListener(new TextWatcher(){

public void afterTextChanged(Editable s) {

}

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

}

public void onTextChanged(CharSequence s, int start, int before,

int count) {

keyWord=s.toString();

if(keyWord.equals("")){//拨号盘没有内容时,隐藏联系人ListView

searchLayout.setVisibility(View.INVISIBLE);

main.hideDialLayout();

}else{

callStatusFlag=3;

handler.postDelayed(new Runnable(){

public void run() {

searchByKeyword(keyWord);

}

},10);

main.showDialLayout();

if(searchLayout.getVisibility()==View.INVISIBLE){

searchLayout.setVisibility(View.VISIBLE);

}

}

}

});

delNumBtn=(Button)findViewById(R.id.delNumBtn);

delNumBtn.setOnClickListener(this);

allRecordBtn=(Button)findViewById(R.id.dial_allrecord_btn);

allRecordBtn.setOnClickListener(new MyOnClickListener(0));

noCallBtn = (Button)findViewById(R.id.dial_norecord_btn);

noCallBtn.setOnClickListener(new MyOnClickListener(1));

dialPage = (RelativeLayout)findViewById(R.id.dialPage);

//通话记录listView

/*callLogListView = (ListView)findViewById(R.id.phoneRecordView);//

callLogAdapter = new CallLogAdapter(this);

callLogListView.setAdapter(callLogAdapter);

*/

//点击隐藏键盘

dialPage.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {

if(dialLayout.isShown()){

dialLayout.setVisibility(View.INVISIBLE);

}

return false;

}

});

/*//单击按钮用来隐藏listViewITem 项

callLogListView.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

if( position != currentPosition ){

currentPosition = position;

}else{

currentPosition = -1;

}

callLogAdapter.notifyDataSetChanged();

}

});

//长按

callLogListView.setOnItemLongClickListener(new OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> parent, View view,

int position, long id) {

return false;

}

});

*/

searchLayout=(RelativeLayout) findViewById(R.id.searchLayout);//搜索联系人

searchBtnlayout=(LinearLayout) findViewById(R.id.searchBtnlayout);

newContactBtn=(Button) findViewById(R.id.newContachBtn);

newContactBtn.setOnClickListener(this);

saveToHaveBtn=(Button) findViewById(R.id.saveToHaveBtn);

saveToHaveBtn.setOnClickListener(this);

sendMsgBtn=(Button) findViewById(R.id.sendMsgBtn);

sendMsgBtn.setOnClickListener(this);

//搜索显示联系人

contactListView=(ListView)findViewById(R.id.contactListView);

searchAdapter=new SearchContactAdapter(this);

contactListView.setAdapter(searchAdapter);

contactListView.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {

if(dialLayout.isShown()){

dialLayout.setVisibility(View.INVISIBLE);

}

return false;

}

});

//取得搜索Position

contactListView.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

if(position != searchCurrentPosition){

searchCurrentPosition = position;

}else{

searchCurrentPosition = -1;

}

searchAdapter.notifyDataSetChanged();

}

});

}

@Override

public boolean onContextItemSelected(MenuItem item) {

AdapterView.AdapterContextMenuInfo menuInfo;

menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();

int position = menuInfo.position;

System.out.println("delType:"+delType);

if(delType ==1){

final NativeUser user = allRecordslist.get(position);

switch(item.getItemId()){

case 0://删除通话记录

handler.post(new Runnable(){

public void run(){

allRecordslist.clear();

nadao.delCallRecord(user.getPhoneNumber());

app.dbService.initOrRefreshCallRecord();

app.dbService.initOrRefreshMissCall();

app.dbService.initOrRefreshOutCall();

initData();

//allRecordslist=app.dbService.getListCall();

dialAllAdapter.notifyDataSetChanged();

adapter.notifyDataSetChanged();

}

});

break;

case 1:

final EditText ed = new EditText(this);

ed.setText(user.getPhoneNumber());

new AlertDialog.Builder(this).setTitle("编辑号码")

.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

String number = ed.getText().toString();

if(! number.equals("")){

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));

startActivity(intent);

}

}

})

.setNegativeButton("取消", null).show();

break;

}

}else if(delType == 2){

final NativeUser user = missCallsList.get(position);

switch(item.getItemId()){

case 0://删除通话记录

handler.post(new Runnable(){

public void run(){

missCallsList.clear();

nadao.delCallRecord(user.getPhoneNumber());

app.dbService.initOrRefreshCallRecord();

app.dbService.initOrRefreshMissCall();

app.dbService.initOrRefreshOutCall();

initData();

//missCallsList=app.dbService.getMissCallsList();

dialMissAdapter.notifyDataSetChanged();

adapter.notifyDataSetChanged();

}

});

break;

case 1:

final EditText ed = new EditText(this);

ed.setText(user.getPhoneNumber());

new AlertDialog.Builder(this).setTitle("编辑号码")

.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

String number = ed.getText().toString();

if(! number.equals("")){

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));

startActivity(intent);

}

}

})

.setNegativeButton("取消", null).show();

break;

}

}else if(delType == 3){

final NativeUser user = outCallsList.get(position);

switch(item.getItemId()){

case 0://删除通话记录

handler.post(new Runnable(){

public void run(){

outCallsList.clear();

nadao.delCallRecord(user.getPhoneNumber());

app.dbService.initOrRefreshCallRecord();

app.dbService.initOrRefreshMissCall();

app.dbService.initOrRefreshOutCall();

initData();

//missCallsList=app.dbService.getMissCallsList();

dialOutAdapter.notifyDataSetChanged();

adapter.notifyDataSetChanged();

}

});

break;

case 1:

final EditText ed = new EditText(this);

ed.setText(user.getPhoneNumber());

new AlertDialog.Builder(this).setTitle("编辑号码")

.setView(ed).setPositiveButton("呼叫", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

String number = ed.getText().toString();

if(! number.equals("")){

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));

startActivity(intent);

}

}

})

.setNegativeButton("取消", null).show();

break;

}

}

return super.onContextItemSelected(item);

}

/**

* 根据关键字搜索

* @param keyWord

*/

public void searchByKeyword(String keyWord){

if(keyWord!=null){

if(!keyWord.equals("")){

if(searchLayout.getVisibility()==View.INVISIBLE||searchLayout.getVisibility()==View.GONE){

dialPage.setVisibility(View.INVISIBLE);

searchLayout.setVisibility(View.VISIBLE);

}

searchListUser.clear();

searchListUser=udao.getListUserByT9Num(keyWord);

if(searchListUser.size()==0){

searchBtnlayout.setVisibility(View.VISIBLE);

}else{

searchBtnlayout.setVisibility(View.GONE);

searchAdapter.notifyDataSetChanged();

}

}else{

searchLayout.setVisibility(View.INVISIBLE);

if(dialPage.getVisibility()==View.INVISIBLE){

dialPage.setVisibility(View.VISIBLE);

searchLayout.setVisibility(View.INVISIBLE);

}

}

}

}

public void onClick(View v) {

switch(v.getId()){

case R.id.num0Btn:

myStack.add("0");

break;

case R.id.num1Btn:

myStack.add("1");

break;

case R.id.num2Btn:

myStack.add("2");

break;

case R.id.num3Btn:

myStack.add("3");

break;

case R.id.num4Btn:

myStack.add("4");

break;

case R.id.num5Btn:

myStack.add("5");

break;

case R.id.num6Btn:

myStack.add("6");

break;

case R.id.num7Btn:

myStack.add("7");

break;

case R.id.num8Btn:

myStack.add("8");

break;

case R.id.num9Btn:

myStack.add("9");

break;

case R.id.numStarBtn:

myStack.add("*");

break;

case R.id.numPoundBtn:

myStack.add("#");

break;

case R.id.delNumBtn:

if(!myStack.isEmpty()){

myStack.pop();

}

break;

case R.id.inputBtn:

String phoneNumber=getStackText();

if(!phoneNumber.equals("")){

try{

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber));

startActivity(intent);

}catch(Exception e){

e.printStackTrace();

}

}

break;

/*case R.id.dial_allrecord_btn://全部电话记录

if(searchLayout.getVisibility()==View.VISIBLE){

searchLayout.setVisibility(View.INVISIBLE);

}

if(callLogListView.getVisibility()==View.INVISIBLE){

callLogListView.setVisibility(View.VISIBLE);

}

if(callStatusFlag==0){

return;

}

callStatusFlag=0;

listRecords.clear();

listRecords.addAll(allRecordslist);

callLogAdapter.notifyDataSetChanged();

break;

case R.id.dial_norecord_btn://未接电话

if(searchLayout.getVisibility()==View.VISIBLE){

searchLayout.setVisibility(View.INVISIBLE);

}

if(callLogListView.getVisibility()==View.INVISIBLE){

callLogListView.setVisibility(View.VISIBLE);

}

if(callStatusFlag==1){

return;

}

callStatusFlag=1;

listRecords.clear();

listRecords.addAll(missCallsList);

callLogAdapter.notifyDataSetChanged();

break;*/

case R.id.newContachBtn://新建联系人

User u=new User();

UserContent content=new UserContent();

content.setContentCategory(ActionCode.PHONE_ACTION);

content.setContentText(getStackText());

u.getListContent().add(content);

app.setEditUser(u);

startActivity(new Intent(DialActivity.this,EditContactActivity.class).putExtra("create",1));

break;

case R.id.saveToHaveBtn://保存到已有

startActivity(new Intent(DialActivity.this,SelectContactsActivity.class).putExtra("actionCode",1).putExtra("data", getStackText()));

break;

case R.id.sendMsgBtn://发送短信

Intent intentsms = new Intent(Intent.ACTION_VIEW);

intentsms.putExtra("sms_body","");

intentsms.putExtra("address",getStackText());

intentsms.setType("vnd.android-dir/mms-sms");

startActivity(intentsms);

break;

default:

break;

}

setInputBtnText();

}

public void setInputBtnText(){

String s=getStackText();

inputBtn.setText(s);

}

/**

* 获取栈内容

* @return

*/

public String getStackText(){

Iterator iter=myStack.iterator();

StringBuffer sb=new StringBuffer();

while(iter.hasNext()){

String s=(String) iter.next();

sb.append(s);

}

return sb.toString();

}

class SearchContactAdapter extends BaseAdapter{

private Context context;

public SearchContactAdapter(Context context){

this.context=context;

}

public int getCount() {

return searchListUser.size();

}

public Object getItem(int position) {

return searchListUser.get(position);

}

public long getItemId(int position) {

return position;

}

class ItemView{

public TextView nameTextView;//姓名

public TextView pinyinTextView;//拼音

public TextView numTextView;//电话号码

public TextView whereTextView;//归属地

public ImageView shortCutPhone;//打电话

public LinearLayout hideLayout;//隐藏视图

public LinearLayout callBtn;

public LinearLayout msgBtn;

public LinearLayout emailBtn;

public LinearLayout detailBtn;

}

public View getView(int position, View convertView, ViewGroup parent) {

ItemView itemView = null;

if(convertView == null){

convertView= LayoutInflater.from(context).inflate(R.layout.dial_search_item, null);

itemView = new ItemView();

itemView.nameTextView = (TextView)convertView.findViewById(R.id.nameTextView);

itemView.pinyinTextView = (TextView)convertView.findViewById(R.id.pinyinTextView);

itemView.numTextView = (TextView)convertView.findViewById(R.id.numTextView);

itemView.whereTextView = (TextView)convertView.findViewById(R.id.whereTextView);

itemView.shortCutPhone = (ImageView)convertView.findViewById(R.id.shortcutPhone);

itemView.hideLayout=(LinearLayout)convertView.findViewById(R.id.hideLayout);

itemView.callBtn=(LinearLayout)convertView.findViewById(R.id.callBtn);

itemView.msgBtn=(LinearLayout)convertView.findViewById(R.id.msgBtn);

itemView.emailBtn=(LinearLayout)convertView.findViewById(R.id.emailBtn);

itemView.detailBtn=(LinearLayout)convertView.findViewById(R.id.detailBtn);

convertView.setTag(itemView);

}else{

itemView = (ItemView)convertView.getTag();

}

final User u=searchListUser.get(position);

setNameHightLight(itemView.nameTextView,u.getMemberName(),u.getMemberNameNum());

//setPinyinHightLight(itemView.pinyinTextView,u.getMemberName(),u.getMemberNameNum());

setPhoneNumHightLight(itemView.numTextView,keyWord,u);

final String phoneNum=itemView.numTextView.getText().toString();

//image 打电话事件

itemView.shortCutPhone.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

String number = phoneNum;

if(! number.equals("")){

try{

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));

startActivity(intent);

}catch(Exception e){

e.printStackTrace();

}

}

}

});

//隐藏菜单打电话按钮

itemView.callBtn.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

String number = phoneNum;

if(! number.equals("")){

try{

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+number));

startActivity(intent);

}catch(Exception e){

e.printStackTrace();

}

}

}

});

itemView.msgBtn.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Intent intent = new Intent(DialActivity.this,SmsDetialActivity.class);

intent.putExtra("number", phoneNum);

intent.putExtra("DAILNUMBER", DAILNUMBER);

startActivity(intent);

}

});

itemView.emailBtn.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

}

});

itemView.detailBtn.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

app.setEditUser(u);

startActivity(new Intent(DialActivity.this,EditContactActivity.class).putExtra("create",3));

}

});

if(searchCurrentPosition==-1){

itemView.hideLayout.setVisibility(View.GONE);

}else if(position==searchCurrentPosition){

itemView.hideLayout.setVisibility(View.VISIBLE);

}else{

itemView.hideLayout.setVisibility(View.GONE);

}

return convertView;

}

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if(requestCode == DIALDETAIL){

int result = data.getIntExtra("dialBack", 0);

if(result == 1){

app.dbService.initOrRefreshCallRecord();

app.dbService.initOrRefreshMissCall();

app.dbService.initOrRefreshOutCall();

Message msg = new Message();

msg.what = 3;

handler.sendMessage(msg);

}

}

super.onActivityResult(requestCode, resultCode, data);

}

/**

* 设置姓名高亮

* @param tv

* @param text

*/

protected void setNameHightLight(TextView tv,String text,String json){

SpannableStringBuilder style= newSpannableStringBuilder(text);

try{

JSONObject o=new JSONObject(json);

String [] arr2=text.split("");

for(int j=0;j<arr2.length;j++){

String ss=arr2[j];

if(!ss.equals("")){

if(!o.isNull((j-1)+"")){

String value=o.getString((j-1)+"");

if(value.charAt(0)=='1'){

style.setSpan( newForegroundColorSpan(Color.BLUE),j-1,j,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

}

}

}

}

}catch(Exception e){

e.printStackTrace();

}

tv.setText(style);

}

/**

* 设置搜索拼音文字高亮

* @param tv

* @param text//文字内容

*/

protected void setPinyinHightLight(TextView tv,String text,String json){

String letter=SpellUtils.getFull(text);//获取姓名的全称的拼音

SpannableStringBuilder style= newSpannableStringBuilder(letter);

try{

JSONObject o=new JSONObject(json);

String [] arr2=text.split("");

int length2=arr2.length;

int index=0;

int move=0;

for(int j=0;j<length2;j++){

String ss=arr2[j];

if(j>0){

move=move+SpellUtils.getFull(arr2[j-1]).length();

index=move;

}

if(!ss.equals("")){

if(!o.isNull((j-1)+"")){

String value=o.getString((j-1)+"");

if(value.charAt(0)=='0'){

continue;

}

for(char c:value.toCharArray()){

if(c=='1'){

style.setSpan( newForegroundColorSpan(Color.BLUE),index,index+1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

}

index++;

}

}

}

}

}catch(Exception e){

e.printStackTrace();

}

tv.setText(style);

}

/**

* 设置电话号码高亮

* @param tv

* @param keyWord

* @param u

*/

public void setPhoneNumHightLight(TextView tv,String keyWord,User u){

ForeignCollection<UserContent>contents=u.getContents();

if(contents!=null){

for(UserContent content:contents){

if(ActionCode.PHONE_ACTION.equals(content.getContentCategory())){

String num=content.getContentText();

if(num!=null){

if(keyWord.length()>=2){

int start=num.indexOf(keyWord);

if(start!=-1){

int length=keyWord.length();

SpannableStringBuilder style= newSpannableStringBuilder(num);

style.setSpan( newForegroundColorSpan(Color.BLUE),start,start+length,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

tv.setText(style);

break;

}else{

tv.setText(num);

}

}else{

tv.setText(num);

break;

}

}

}

}

}

}

public class DialPagerAdapter extends PagerAdapter implements OnClickListener {

public List<View> mListViews;

public View v1;

public View v2;

public View v3;

public View v4;

public DialPagerAdapter(List<View> mListViews) {

this.mListViews = mListViews;

getViewClickListener(mListViews);

}

public void getViewClickListener(List<View> listview) {

v1 = listview.get(0);

v2 = listview.get(1);

v3 = listview.get(2);

v4 = listview.get(3);

//所有

dialAllList = (ListView)v1.findViewById(R.id.dial_all_list);

dialAllList.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1,

int position, long arg3) {

onClickItem(position,dialAllAdapter);

}

});

dialAllList.setOnItemLongClickListener(new OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> parent, View view,

int position, long id) {

delType = 1;

return false;

}

});

dialAllList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

OnItemLongClick(allRecordslist,menuInfo, menu);

}

});

//未接

dialMissList = (ListView)v2.findViewById(R.id.dial_miss_list);

dialMissList.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

onClickItem(position,dialMissAdapter);

}

});

dialMissList.setOnItemLongClickListener(new OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> parent,

View view, int position, long id) {

delType = 2;

return false;

}

});

dialMissList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

OnItemLongClick(missCallsList,menuInfo, menu);

}

});

//已拨打

dialOutList = (ListView)v3.findViewById(R.id.dial_out_list);

dialOutList.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

onClickItem(position,dialOutAdapter);

}

});

dialOutList.setOnItemLongClickListener(new OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> parent,

View view, int position, long id) {

delType = 3;

return false;

}

});

dialOutList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

OnItemLongClick(outCallsList,menuInfo, menu);

}

});

}

public void destroyItem(View arg0, int arg1, Object arg2) {

((ViewPager) arg0).removeView(mListViews.get(arg1));

}

public void finishUpdate(View arg0) {

}

@Override

public int getCount() {

return mListViews.size();

}

@Override

public Object instantiateItem(View arg0, int arg1) {

((ViewPager) arg0).addView(mListViews.get(arg1), 0);

if(arg1==0){

System.out.println("allRecordslist:"+allRecordslist.size());

dialAllAdapter = new DialAdapter(DialActivity.this,allRecordslist);

dialAllList.setAdapter(dialAllAdapter);

}else if(arg1 == 1){

dialMissAdapter = new DialAdapter(DialActivity.this,missCallsList);

dialMissList.setAdapter(dialMissAdapter);

}else if(arg1 == 3){

dialOutAdapter = new DialAdapter(DialActivity.this,outCallsList);

dialOutList.setAdapter(dialOutAdapter);

}

return mListViews.get(arg1);

}

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

return arg0 == (arg1);

}

@Override

public void restoreState(Parcelable arg0, ClassLoader arg1) {

}

@Override

public Parcelable saveState() {

return null;

}

@Override

public void startUpdate(View arg0) {

}

public void onClick(View v) {

}

@Override

public int getItemPosition(Object object) {

// TODO Auto-generated method stub

return POSITION_NONE;

}

//单击

public void onClickItem( int position,DialAdapter ad){

DialAdapter tempAdapter;

tempAdapter= ad;

if(currentPosition==position){

currentPosition=-1;

}else{

currentPosition=position;

}

tempAdapter.setCurrentPosition(currentPosition);

tempAdapter.notifyDataSetChanged();

}

public void OnItemLongClick(List<NativeUser> list,ContextMenuInfo menuInfo,ContextMenu menu){

AdapterView.AdapterContextMenuInfo info;

List<NativeUser> uList;

ContextMenuInfo menuInfor;

ContextMenu menus;

menus = menu;

menuInfor = menuInfo;

uList = list;

try{

info =(AdapterView.AdapterContextMenuInfo) menuInfo;

int position = info.position;

NativeUser user = uList.get(position);

menus.setHeaderTitle(user.getPhoneNumber());

menus.add(0, 0, 0, "从通话记录中删除");

menus.add(0, 1, 0, "呼叫前修改号码");

}catch(Exception e){

e.printStackTrace();

}

}

}

public class DialOnPageChangeListener implements OnPageChangeListener {

int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量

int two = one * 2;// 页卡1 -> 页卡3 偏移量

int three = two +bmpW;

public void onPageSelected(int arg0) {

Animation animation = null;

System.out.println("arg0"+arg0);

System.out.println("currIndex"+currIndex);

switch (arg0) {

case 0:

if (currIndex == 1) {

animation = new TranslateAnimation(one, 0, 0, 0);

} else if (currIndex == 2) {

animation = new TranslateAnimation(two, 0, 0, 0);

}else if (currIndex == 3) {

animation = new TranslateAnimation(three, 0, 0, 0);

}

break;

case 1:

if (currIndex == 0) {

animation = new TranslateAnimation(offset, one, 0, 0);

} else if (currIndex == 2) {

animation = new TranslateAnimation(two, one, 0, 0);

}else if (currIndex == 3) {

animation = new TranslateAnimation(three, one, 0, 0);

}

break;

case 2:

if (currIndex == 0) {

animation = new TranslateAnimation(offset, two, 0, 0);

} else if (currIndex == 1) {

animation = new TranslateAnimation(one, two, 0, 0);

}else if (currIndex == 3) {

animation = new TranslateAnimation(three, two, 0, 0);

}

break;

case 3:

if (currIndex == 0) {

animation = new TranslateAnimation(offset, three, 0, 0);

} else if (currIndex == 1) {

animation = new TranslateAnimation(one, three, 0, 0);

} else if(currIndex == 2){

animation = new TranslateAnimation(two, three, 0, 0);

}

break;

}

currIndex = arg0;

animation.setFillAfter(true);// True:图片停在动画结束位置

animation.setDuration(300);

dialImageLay.startAnimation(animation);

}

public void onPageScrolled(int arg0, float arg1, int arg2) {

}

public void onPageScrollStateChanged(int arg0) {

}

}

}

赞助本站

人工智能实验室

相关热词: viewpage

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港