添加布局如下:

<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2010 The Android Open Source Project     Licensed under the Apache License, Version 2.0 (the "License");     you may not use this file except in compliance with the License.     You may obtain a copy of the License at          http://www.apache.org/licenses/LICENSE-2.0     Unless required by applicable law or agreed to in writing, software     distributed under the License is distributed on an "AS IS" BASIS,     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.     See the License for the specific language governing permissions and     limitations under the License.--><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <Button        android:id="@+id/button"        android:text="切换按钮"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <ListView        android:id="@+id/list_en"        android:layout_width="match_parent"        android:layout_weight="1.0"        android:layout_height="0dip"/>    <ListView        android:id="@+id/list_fr"        android:layout_width="match_parent"        android:layout_weight="1.0"        android:layout_height="0dip"        android:visibility="gone"/></LinearLayout>

  

切换动画实现:

package com.edaixi.tempbak;import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import android.animation.ObjectAnimator;import android.annotation.SuppressLint;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.animation.AccelerateInterpolator;import android.view.animation.DecelerateInterpolator;import android.view.animation.Interpolator;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.SeekBar;import android.widget.Toast;@SuppressLint("NewApi")public class SwitchListviewAnimation extends Activity {private static final int DURATION = 1500;private SeekBar mSeekBar;private static final String[] LIST_STRINGS_EN = new String[] { "e 袋洗 - 1","e 袋洗 - 2", "e 袋洗 - 3", "e 袋洗 - 4", "e 袋洗 - 5", "e 袋洗 - 6" };private static final String[] LIST_STRINGS_FR = new String[] { "阿姨帮 - 1","阿姨帮 - 2", "阿姨帮 - 3", "阿姨帮 - 4", "阿姨帮 - 5", "阿姨帮 - 6" };ListView mEnglishList;ListView mFrenchList;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_switch);mEnglishList = (ListView) findViewById(R.id.list_en);mFrenchList = (ListView) findViewById(R.id.list_fr);// Prepare the ListViewfinal ArrayAdapter<String> adapterEn = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, LIST_STRINGS_EN);// Prepare the ListViewfinal ArrayAdapter<String> adapterFr = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, LIST_STRINGS_FR);mEnglishList.setAdapter(adapterEn);mEnglishList.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(getApplicationContext(),"---点击---" + LIST_STRINGS_EN[position], 0).show();}});mFrenchList.setAdapter(adapterFr);mFrenchList.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(getApplicationContext(),"---点击---" + LIST_STRINGS_FR[position], 0).show();}});mFrenchList.setRotationY(-90f);Button starter = (Button) findViewById(R.id.button);starter.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {flipit();}});}private Interpolator accelerator = new AccelerateInterpolator();private Interpolator decelerator = new DecelerateInterpolator();private void flipit() {final ListView visibleList;final ListView invisibleList;if (mEnglishList.getVisibility() == View.GONE) {visibleList = mFrenchList;invisibleList = mEnglishList;} else {invisibleList = mFrenchList;visibleList = mEnglishList;}ObjectAnimator visToInvis = ObjectAnimator.ofFloat(visibleList,"rotationY", 0f, 90f);visToInvis.setDuration(500);visToInvis.setInterpolator(accelerator);final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(invisibleList,"rotationY", -90f, 0f);invisToVis.setDuration(500);invisToVis.setInterpolator(decelerator);visToInvis.addListener(new AnimatorListenerAdapter() {@Overridepublic void onAnimationEnd(Animator anim) {visibleList.setVisibility(View.GONE);invisToVis.start();invisibleList.setVisibility(View.VISIBLE);}});visToInvis.start();}}

  

更多相关文章

  1. Android几行代码解决键盘遮挡问题
  2. Android实现沉浸式状态栏
  3. android通过自定义toast实现悬浮通知效果的示例代码
  4. Fragment 在Android(安卓)SDK1.6上实现
  5. [转] Android(安卓)检测电源按钮是否被按下
  6. android resultCode 一直为0问题解决
  7. android studio开发教程 ListActivity的2种使用方法:系统默认布局
  8. Android(安卓)fill_parent和wrap_content分析
  9. Android(安卓)代码中动态为RadioGroup添加RadioButton

随机推荐

  1. 应用基础
  2. android小问题-去除状态栏下的阴影
  3. [翻译]Android单手指缩放-第二部分(Androi
  4. Android免Root权限Hook系统函数修改程序
  5. Android(安卓)缓存
  6. android面试题总结加强再加强版(四)
  7. 让最新的 Android(安卓)Q Beta 3 强制重
  8. android动画深入解析--仿58底部导航的ite
  9. Android(安卓)表格控件-动态实现表格效果
  10. React Native之Image组件使用时Android和