Android使用ViewFlipper实现Switch动画特效
来源:互联网 发布:淘宝卖家支付宝限额 编辑:程序博客网 时间:2024/04/28 06:52
使用ViewFlipper实现Switch简单的开启可关闭动画特效,Switch部分主要为自定义控件,继承的ViewFlipper。
1、主Activity文件,其中实现了对mSwitch的点击监听事件,通过判断labelState的状态来选择开启或关闭开关。
package com.chengkni.demo.viewflipper;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Toast;public class MainActivity extends Activity { private MyViewFlipper mSwitch; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); initView(); } private void initView() { mSwitch = (MyViewFlipper) findViewById(R.id.vf_main_my_switch); mSwitch.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { if (mSwitch.labelState) { Toast.makeText(getApplicationContext(), "开关已打开", Toast.LENGTH_SHORT).show(); mSwitch.openPrevious(); } else { Toast.makeText(getApplicationContext(), "开关已关闭", Toast.LENGTH_SHORT).show(); mSwitch.openNext(); } } }); }}
2、自定义的Switch控件。继承了ViewFlipper ,覆盖了几个父类方法和自定义了几个方法。
package com.chengkni.demo.viewflipper;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.widget.ViewFlipper;public class MyViewFlipper extends ViewFlipper { private String TAG = this.getClass().getSimpleName(); public boolean labelState = false; private Context mContext; public MyViewFlipper(Context context) { super(context); mContext = context; Log.e(TAG, "MyViewFlipper(Context context)"); } public MyViewFlipper(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; Log.e(TAG, "MyViewFlipper(Context context, AttributeSet attrs)"); } /** * 说明:显示下一个标签 */ public void openNext() { setInAnimation(mContext, R.anim.open_label_in_anim); setOutAnimation(mContext, R.anim.open_label_out_anim); showNext(); labelState = true; } /** * 说明:显示下一个标签 * * @param inAnim 标签入场动画 * @param outAnim 标签出场动画 */ public void openNext(int inAnim, int outAnim) { setInAnimation(mContext, inAnim); setOutAnimation(mContext, outAnim); showNext(); labelState = true; } /** * 说明:显示上一个标签 */ public void openPrevious() { setInAnimation(mContext, R.anim.close_label_in_anim); setOutAnimation(mContext, R.anim.close_label_out_anim); showPrevious(); labelState = false; } /** * 说明:显示上一个标签 * * @param inAnim 标签入场动画 * @param outAnim 标签出场动画 */ public void openPrevious(int inAnim, int outAnim) { setInAnimation(mContext, inAnim); setOutAnimation(mContext, outAnim); showPrevious(); labelState = false; } @Override public void showNext() { super.showNext(); } @Override public void showPrevious() { super.showPrevious(); } @Override public void setInAnimation(Context context, int resourceID) { super.setInAnimation(context, resourceID); } @Override public void setOutAnimation(Context context, int resourceID) { super.setOutAnimation(context, resourceID); }}
3、Switch的动画实现使用的anim文件。文件详见完整工程包。
4、主布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <com.chengkni.demo.viewflipper.MyViewFlipper android:id="@+id/vf_main_my_switch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" > <TextView android:id="@+id/tv_main_close_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/main_close_lable" android:textSize="25sp" /> <TextView android:id="@+id/tv_main_open_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/main_open_lable" android:textSize="25sp" /> </com.chengkni.demo.viewflipper.MyViewFlipper></RelativeLayout>
“ViewFlipper实现Switch动画特效完”整工程文件下载地址
0 0
- Android使用ViewFlipper实现Switch动画特效
- Android学习-使用ViewFlipper实现屏幕切换的动画效果
- 使用ViewFlipper实现屏幕滚动切换动画
- 使用ViewFlipper实现屏幕切换动画效果
- 使用ViewFlipper实现屏幕切换动画效果
- 使用ViewFlipper实现屏幕切换动画效果
- Android动画特效的实现
- ViewFlipper实现图片动画
- ViewFlipper 实现翻页动画
- Android ViewFlipper触摸动画
- Android ViewFlipper触摸动画
- Android ViewFlipper的动画
- Android ViewFlipper触摸动画
- Android程序:使用ViewFlipper实现屏幕切换动画及手势滑动切换功能
- Android入门(34)——第十一章 使用ViewFlipper实现屏幕切换动画效果
- Android ViewFlipper的使用 实现页面滑动
- Android 实现滑动翻页---使用ViewFlipper
- Android中使用ViewFlipper实现屏幕切换
- 五种迭代器汇总 From C++ Primer Plus 6th
- 文章标题
- nyoj-289-苹果(01背包)
- Problem: Mac: Load Crypto.Cipher.ARC4 Failed, Use Pure Python Instead
- 解决jQueyMobile的动态加载办法
- Android使用ViewFlipper实现Switch动画特效
- \u8BA8\u8BBA\u533A编码转换
- 经典算法系列---hanoi塔问题
- java基础——集合框架(List、Set、Map)
- java+oracle+web(第六天) tomcat介绍 (二)WEB应用结构
- 矩阵的负二分之一怎么计算
- Solr云(一)
- 浅析shell编程
- 幸福的港湾—1040出局证的真伪