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