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

更多相关文章

  1. android 多项对话框
  2. Android(安卓)VR效果GoogleVR
  3. Android(安卓)ListView(Selector 背景图片 全选 Checkbox等按钮)
  4. Android控件之ImageView,Button, ImageButton
  5. Android开发小技巧1
  6. 14 Android(安卓)android 按钮效果的两种实现方法
  7. android 五种布局模式
  8. android 利用service来播放音乐
  9. Android往SD卡上存储文件

随机推荐

  1. 关于cocos2dx的eclipse的"serializing cd
  2. PullToRefresh的简单使用
  3. android使用全局变量的两种方法
  4. android之实现底部TabHost
  5. Android文件浏览器的开发
  6. Android自学笔记:应用程序组件
  7. Android上调用google map api v2
  8. android adb 通过adb连接制定设备
  9. android之app widget(一)
  10. android aidl