实现一个点击菜单动画添加按钮,点击按钮移除当前按钮的动画效果;

<LinearLayout 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"
android:id="@+id/linerLayout1"
android:orientation="vertical"
    // 如果要实现动画效果的话,此选项要设置为true
android:animateLayoutChanges="true"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > </LinearLayout>

为应用添加一个菜单  res/menu/main.xml,添加一个菜单项:

    <item android:id="@+id/action_add"
android:showAsAction="always"
android:icon="@android:drawable/ic_input_add" />

代码:

private LinearLayout layout1;
private OnClickListener btnOnClickListener=new OnClickListener() { @Override
public void onClick(View v) {
//移除按钮时,使用由大到小的缩放效果,然后移除按钮
ScaleAnimation scale=new ScaleAnimation(1,0,1,0,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
scale.setDuration(1000);
v.startAnimation(scale);
layout1.removeView(v);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout1=(LinearLayout)findViewById(R.id.linerLayout1);
} private void addButton() {
//添加按钮并且为按钮实现一个缩放的动画效果,使按钮可以从小到大实现缩放
Button btn=new Button(this);
btn.setText("Remove me");
ScaleAnimation scale=new ScaleAnimation(0,1,0,1,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
scale.setDuration(1000);
btn.setAnimation(scale);
//实现OnClick监听,当点击按钮的时候移除按钮
btn.setOnClickListener(btnOnClickListener);
layout1.addView(btn);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
return true;
case R.id.action_add:
//如果点击的菜单是添加的菜单的话,则执行添加按钮操作
addButton();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}

点击添加按钮的时候:

点击Remove 按钮的时候:

最新文章

  1. SSIS Design1: 源数据提取
  2. Exit code from container executor initialization is : 24 ExitCodeException exitCode=24: Configuration file ../etc/hadoop/container-executor.cfg not found.
  3. 《《我是一只IT小小鸟》》读后感
  4. Set集合对象比较两个元素的方法
  5. dubbo学习之服务消费者
  6. input[type=checkbox]
  7. Flask 与 Celery 在 windows 下的集成问题
  8. 【海岛帝国系列赛】No.2 海岛帝国:“落汤鸡”市的黑帮危机
  9. hdu 1030 Delta-wave (C++, 0ms, explanatory comments.) 分类: hdoj 2015-06-15 12:21 45人阅读 评论(0) 收藏
  10. Android ViewPager多页面滑动切换以及动画效果
  11. vim/Gvim配置
  12. cocos2dx 动画 二(iOS)
  13. Java计算1-100的和(要求尽量考虑代码优化)
  14. pc端的企业网站(IT修真院test9)详解一个响应式完成的pc端项目
  15. ASP.NET Core 2.0 自定义 _ViewStart 和 _ViewImports 的目录位置
  16. 5分钟看懂svg path 路径的所有命令(更有API解释、有图、有图文对比解析)
  17. .NET 术语
  18. 0day漏洞
  19. 树莓派系统(Debain)中设置SSH服务开机自启动
  20. [翻译]API Guides - Service

热门文章

  1. mysql 开启事务
  2. 步步学LINQ to SQL:使用LINQ检索数据【转】
  3. C#初步接触
  4. ASP.NET MVC 学习之路-5
  5. 《JavaScript 闯关记》之简介
  6. JavaScript检测之basevalidate.js
  7. android开发MD5加密工具类(一)
  8. zoj1108 FatMouse's Speed
  9. html 中head显示 在标题栏里面的图片
  10. 一个简单的shell脚本