Android 实现 按钮从两边移到中间动画效果
来源:互联网 发布:唯一约束 mysql 编辑:程序博客网 时间:2024/05/02 02:16
Android 实现 按钮从两边移到中间动画效果
http://blog.csdn.net/aminfo/article/details/7589149
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() {@Overridepublic 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 blocke.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 blocke.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; } } }}
转载请标明:http://blog.csdn.net/aminfo/article/details/7589149
- Android 实现 按钮从两边移到中间动画效果
- Android实现按钮从两边移到中间动画效果(网上整理)
- UICollectionViewCell水平缩放,中间大两边小效果的实现
- ViewPager中间大两边小效果的实现
- RecycleView实现Gallery画廊效果,中间放大两边缩小
- CSS伪类实现中间文字两边横线效果
- 演示字符从两边向中间汇聚
- UIPageViewController 实现从中间翻页效果
- 用gallery展示图片,实现中间图片稍大,两边较小的效果
- 实现一个EditText中间有字,字两边都可点击触发事件的效果
- ViewPager实现Gallery的画廊效果 突显中间 虚化两边的界面
- ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示
- ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示(优化篇)
- css实现两边固定,中间自适应
- Android动画效果实现
- android实现动画效果
- Android实现动画效果
- Android仿Path按钮动画效果 PathButton
- 程序从shell接收到的参数
- android加载大量图片内存溢出bitmap size exceeds VM budget的解决办法。
- linux动态链接库示例
- 设计模式学习笔记——桥梁模式
- Struts2中的文件下载
- Android 实现 按钮从两边移到中间动画效果
- C++中的逗号运算符
- opencv 2.4 image stitching
- 滤波电路的时域和频域分析
- linux 远程连接服务器
- 对Activity的理解
- 解决waiting for jockey-backend to exit
- Ubuntu 误删文件恢复方法
- 让磁盘性能翻三倍