`
xyz_lmn
  • 浏览: 65401 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android UI开发第十五篇——分享一个登录缓冲界面

 
阅读更多

今天在网上发现了一个很漂亮的缓冲界面,在这里分享一下。主要还是用的android Anim。

java code:

public class Main extends Activity {
	private Animation anm;
	private int marginsTop;
	public List<ImageView> images;
	public LinearLayout ll;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

		requestWindowFeature(Window.FEATURE_NO_TITLE);

		DisplayMetrics dm = this.getResources().getDisplayMetrics();

		int height = dm.heightPixels;
		marginsTop = height - 100;
		anm = AnimationUtils.loadAnimation(this, R.anim.myanim);
		ll = new LinearLayout(this);
		ll.setBackgroundResource(R.drawable.background);

		images = new ArrayList<ImageView>();
		initImage(ll);
		playAnimation();
		setContentView(ll);
    }
    private void playAnimation(){    	
    		new Thread(){
    			@Override
    			public void run()
    			{
    				try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					int runcount=0;
    				while(true)
    				{
    					if(runcount<2)
    					{
	    					for(int i=0;i<=6;i++)
	    					{
	    						handler.sendEmptyMessage(i);
	    						try {
	    							Thread.sleep(400);
	    						} catch (InterruptedException e) {
	    							e.printStackTrace();
	    						}
	    					}
	    					runcount++;
    					}else
    					{
    						handler.sendEmptyMessage(99);
    						runcount=0;
    					}
    					

    				}

    			}

    		}.start();
    	}
    	

    Handler handler=new Handler(){

    			@Override
    			public void handleMessage(Message msg) {  				
    				switch(msg.what)
    				{
    				case 0:
    					images.get(0).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.l));
    					images.get(0).startAnimation(anm);
    					
    					break;
    				case 1:
    					images.get(1).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.o));
    					images.get(1).startAnimation(anm);
    					break;
    				case 2:
    					images.get(2).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.a));
    					images.get(2).startAnimation(anm);
    					break;
    				case 3:
    					images.get(3).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.d));
    					images.get(3).startAnimation(anm);
    					break;
    				case 4:
    					images.get(4).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.i));
    					images.get(4).startAnimation(anm);
    					break;
    				case 5:
    					images.get(5).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.n));
    					images.get(5).setAnimation(anm);
    					break;
    				case 6:
    					images.get(6).setImageDrawable(Main.this.getResources().getDrawable(R.drawable.g));
    					images.get(6).setAnimation(anm);
    					break;
    				case 99:
    					clearImage();
    					break;
    				}
    			}
    		};
    private void clearImage()
    {
    	for(ImageView image:images)
    	{
    		image.setImageDrawable(null);
    		image.destroyDrawingCache();
    	}
    }
    private void initImage(LinearLayout layout) {
    	
    	layout.setGravity(Gravity.CENTER_HORIZONTAL);
		LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(40, 40);
		param.setMargins(30, marginsTop, 0, 0);
		
		LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(40, 40);
		param2.setMargins(-5, marginsTop, 0, 0);

		ImageView l = new ImageView(this);
		l.setLayoutParams(param);
		layout.addView(l);
		images.add(l);

		ImageView o = new ImageView(this);
		o.setLayoutParams(param2);
		layout.addView(o);
		images.add(o);
		
		
		ImageView a = new ImageView(this);
		a.setLayoutParams(param2);
		layout.addView(a);
		images.add(a);
		
		ImageView d = new ImageView(this);
		d.setLayoutParams(param2);
		layout.addView(d);
		images.add(d);
		
		ImageView i = new ImageView(this);
		i.setLayoutParams(param2);
		layout.addView(i);
		images.add(i);
		
		ImageView n = new ImageView(this);
		n.setLayoutParams(param2);
		layout.addView(n);
		images.add(n);
		
		ImageView g = new ImageView(this);
		g.setLayoutParams(param2);
		layout.addView(g);
		images.add(g);
	}
}


anim code:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
	android:shareInterpolator="false">
	<scale android:interpolator="@android:anim/accelerate_interpolator"
		android:fromXScale="0.5" 
		android:toXScale="1.2" 
		android:fromYScale="0.5"
		android:toYScale="1.2" 
		android:pivotX="50%" 
		android:pivotY="50%"
		android:fillAfter="false" 
		android:startOffset="-50"
		android:duration="100"
/>
</set>

代码地址:http://www.devdiv.com/thread-101608-1-1.html

/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*
*/


分享到:
评论

相关推荐

    《Android应用开发揭秘》附带光盘代码.

     2.3 创建第一个Android项目——HeUoAndroid  2.3.1 创建HelloAndroid项目  2.3.2 运行HelloAndroid及模拟器的使用  2.3.3 调试HelloAndroid  2.4 小结  第二部分 基础篇  第3章 Android程序设计基础  3.1 ...

    《Android应用开发揭秘》源码

     2.3 创建第一个Android项目——HeUoAndroid  2.3.1 创建HelloAndroid项目  2.3.2 运行HelloAndroid及模拟器的使用  2.3.3 调试HelloAndroid  2.4 小结  第二部分 基础篇  第3章 Android程序设计基础  3.1 ...

    Android应用开发揭秘pdf高清版

    2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 ...

    Android应用开发揭秘

    2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 ...

    QtEmbedded入门实例教程PDF(破密版本).pdf

    - **Qt 设计器(Qt Designer)**:这是一个可视化界面设计工具,允许开发者拖放 UI 元素并调整其属性。 - **Tmake**:一种用于构建 Qt 应用程序的构建系统,简化了编译和链接过程。 - **Qvfb**:这是一种虚拟帧缓冲...

    Cocos2D-X游戏开发技术精解

    7.8.1 创建和摧毁一个世界 210 7.8.2 让世界运转起来 211 7.8.3 探索世界 212 7.8.5 AABB查询 213 7.8.6 光线投射(Ray Casts) 214 7.9 形状Shapes 216 7.9.1 碰撞模块 216 7.9.2 形状Shape的作用 216 7.9.3 圆形...

    JAVA上百实例源码以及开源项目源代码

    QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    java课件学习

    首先,我们来详细探讨JDK(Java Development Kit)的安装与使用,这是开始Java编程的第一步。 1. **JDK安装**:JDK是Java开发工具包,包含了编译、调试和运行Java程序所需的所有工具。首先,你需要从Oracle官方网站...

Global site tag (gtag.js) - Google Analytics