android 中间按钮突出,Android 实现 按钮从两边移到中间动画效果
Android 实现 按钮从两边移到中间动画效果html
package org.shuxiang.test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
public class MainActivity extends Activity
{
private DisplayMetrics dm;
private LinearLayout layout, layoutLeft, layoutCenter, layoutRight;
private static Handler messageHandler;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
layout = new LinearLayout(this);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
layout.setOrientation(0); //水平
layout.setGravity(Gravity.CENTER);
layoutLeft = new LinearLayout(this);
layoutLeft.setLayoutParams(new LayoutParams(0, LayoutParams.WRAP_CONTENT));
layoutLeft.setGravity(Gravity.RIGHT);
layoutCenter = new LinearLayout(this);
layoutCenter.setLayoutParams(new LayoutParams(dm.widthPixels, LayoutParams.WRAP_CONTENT));
layoutRight = new LinearLayout(this);
layoutRight.setLayoutParams(new LayoutParams(0, LayoutParams.WRAP_CONTENT));
layoutRight.setGravity(Gravity.LEFT);
Button btA = new Button(this);
btA.setText("按钮A");
btA.setSingleLine(true);
Button btB = new Button(this);
btB.setText("按钮B");
btB.setSingleLine(true);
layoutLeft.addView(btA);
layoutRight.addView(btB);
layout.addView(layoutLeft);
layout.addView(layoutCenter);
layout.addView(layoutRight);
setContentView(layout);
Looper looper = Looper.myLooper();
messageHandler = new MessageHandler(looper);
new Thread(new Runnable()
{
@Override
public void run()
{
int speed = 5;//每次移动间隔毫秒,数字越大越慢
int speedPx = 1;//每次移动间隔像素,数字越大越快
int loopCount = dm.widthPixels/2;
int i=1;
while(i < loopCount)
{
Message message = Message.obtain();
message.what = 1;
message.arg1 = i;
messageHandler.sendMessage(message);
i = i + speedPx;
synchronized(this)
{
try
{
wait(speed);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
i=0;
while(i < 10)
{
Message message = Message.obtain();
message.what = 1;
message.arg1 = loopCount - i;
messageHandler.sendMessage(message);
i = i + speedPx;
synchronized(this)
{
try
{
wait(speed);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}).start();
}
class MessageHandler extends Handler
{
public MessageHandler(Looper looper)
{
super(looper);
}
@Override
public void handleMessage(Message msg)
{
switch (msg.what)
{
case 1:
layoutLeft.setLayoutParams(new LayoutParams(msg.arg1, LayoutParams.WRAP_CONTENT));
layoutRight.setLayoutParams(new LayoutParams(msg.arg1, LayoutParams.WRAP_CONTENT));
layoutCenter.setLayoutParams(new LayoutParams(dm.widthPixels - msg.arg1 * 2, LayoutParams.WRAP_CONTENT));
break;
}
}
}
}
android 中间按钮突出,Android 实现 按钮从两边移到中间动画效果相关推荐
- Android之app引导页(背景图片切换加各个页面动画效果)
转载:http://blog.csdn.net/lowprofile_coding/article/details/48037095 先看效果图: 1.显示三个页面的Activity 用view p ...
- android 自定义园动画,Android 自定View实现仿QQ运动步数圆弧及动画效果
在之前的Android超精准计步器开发-Dylan计步中的首页用到了一个自定义控件,和QQ运动的界面有点类似,还有动画效果,下面就来讲一下这个View是如何绘制的. 1.先看效果图 2.效果图分析 功 ...
- ios 扇形 按钮_iOS 饼状图(扇形图)动画效果的实现
先上效果图: 23.gif Demo在此,休得撒野!!!! 1.怎么用 /** * Pie * * @param frame frame * @param dataItems 数据源,此Demo是红. ...
- android陀螺仪实现背景移动demo,基于HTML5陀螺仪实现移动动画效果
这次给大家带来基于HTML5陀螺仪实现移动动画效果,基于HTML5陀螺仪实现移动动画效果的注意事项有哪些,下面就是实战案例,一起来看一下. 最近用ofo小黄车App的时候,发现以前下方扫一扫变成了一个 ...
- Android仿腾讯手机管家实现桌面悬浮窗小火箭发射的动画效果
功能分析: 1.小火箭游离在activity之外,不依附于任何activity,不管activity是否开启,不影响小火箭的代码逻辑,所以小火箭的代码逻辑是要写在服务中: 2.小火箭挂载在手机窗体 ...
- android筛选功能代码,Android中 TeaScreenPopupWindow多类型筛选弹框功能的实例代码
Github地址 YangsBryant/TeaScreenPopupWindow (Github排版比较好,建议进入这里查看详情,如果觉得好,点个star吧!) 引入module allprojec ...
- android 矢量粒子动画,iOS CAEmitterLayer实现粒子发射动画效果
iOS实现粒子发射动画效果图 动画效果用 CAEmitterLayer 实现.CAEmitterLayer 显示粒子发射动画,具体的粒子由 CAEmitterCell 封装.代码示例是展示 CAEmi ...
- android切换字体颜色,Android开发实现按钮点击切换背景并修改文字颜色的方法
本文实例讲述了Android开发实现按钮点击切换背景并修改文字颜色的方法.分享给大家供大家参考,具体如下: 其实原理很简单,用到的是selector,用来设置android:background和an ...
- android 按钮 叠加,android - 叠加层按钮在Android 4.3中不起作用 - 堆栈内存溢出
我在WindowManager.LayoutParams.TYPE_TOAST级别层上有一个带按钮的覆盖视图. 该按钮在Android 4.2中可以正常工作,但是当我在Android 4.3中运行相同 ...
最新文章
- ORA-12519, TNS:no appropriate service handler found
- python字符串可以保存在变量中吗_在python中可以从字符串变量实例化类吗?
- 如果你不喜欢Windows 11开始菜单,还可以用注册表换回Windows 10样式
- POJ - 1251(最小生成树.krustal)
- 《Go语言程序设计》读书笔记(七)基于共享变量的并发
- CISA《网络安全事件和漏洞响应手册》提到的SSVC是什么?
- 一个简易的C++性能分析工具
- angular2 --使用DecimalPipe格式化数字
- 手机黑屏时闪屏怎么回事_手机屏幕碎了,先别着急换!维修师傅告诉你,如何不被忽悠多花钱...
- ibm服务器机 安装系统安装系统安装方法,IBM服务器系统安装图解全攻略
- CopperCam入门手册[5]
- http keepalive原理
- 自定义 Bean 作用域
- office 2010 word文档,插入复选框,方框打勾(打对号)的方法
- Voyage自动驾驶测试场景开源文档介绍
- 【JavaScript】(二)俄罗斯方块
- vscode必备常用插件
- 手机号归属地,在线查询api
- linux 内存 参数,linux free命令参数及用法详解(linux查看内存命令)
- 免费分享:5本安卓开发经典书籍,Android 7编程入门经典(第4版),Android底层驱动分析和移植,底层驱动分析和移植