• 类似于抽奖活动的小程序


    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Random;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.animation.Animation;
    import android.view.animation.AnimationSet;
    import android.view.animation.ScaleAnimation;
    import android.widget.TextView;
    public class MainActivity extends Activity {
    	private TextView mTv;
    	private ArrayList<String> nameList;
    	private Random r;
    	private String rname = null;
    	int i = 0;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		mTv = (TextView) this.findViewById(R.id.tv_showname);
    		nameList = new ArrayList<String>();
    
    		readData();
    	}
    	private void readData() {
    		// 直接从文件里拿到全部人名字,放到集合里
    		// 随机为集合长度,那个随机所以人名字显示到mTv
    		try {
    			InputStream is = this.getAssets().open("name.txt");
    			BufferedReader br = new BufferedReader(new InputStreamReader(is,
    					"utf-8"));
    			String line = null;
    			while ((line = br.readLine()) != null) {
    				nameList.add(line);// 遍历每一行的名字放入List集合
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	public void rName(View view) {
    		final int size = nameList.size();
    		r = new Random();
    		new Thread() {
    			public void run() {
    				// 得到一个随机索引
    				for (i =0; i < 4; i++) {
    					try {
    						Thread.sleep(300);
    						int index = r.nextInt(size);
    						rname = nameList.get(index);
    
    						runOnUiThread(new Runnable() {
    							@Override
    							public void run() {
    								// 显示
    								mTv.setText(rname);
    								if (i == 4) {
    									showAnim();
    								}
    							}
    						});
    					
    					} catch (InterruptedException e) {
    						e.printStackTrace();
    					}
    				}
    			};
    		}.start();
    	}
    	
    	/**
    	 * 显示缩放动画
    	 */
    	private void showAnim(){
    		AnimationSet set = new AnimationSet(false);
    		
    		ScaleAnimation anim = new ScaleAnimation(0, 4, 0,4,
    				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    		anim.setDuration(1000);
    		
    		ScaleAnimation anim1 = new ScaleAnimation(4, 0, 4, 0,
    				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    		anim1.setDuration(1000);
    		set.addAnimation(anim);
    		set.addAnimation(anim1);
    		mTv.startAnimation(set);
    	}
    }
    
    <RelativeLayout 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" >
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="rName"
            android:text="抽奖活动" />
    
        <TextView
            android:id="@+id/tv_showname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:text="恭喜你!"
            android:textColor="#FF0000"
            android:textSize="33dp" />
    
    </RelativeLayout>
    

    在assets文件下创建name.text

    效果:

  • 相关阅读:
    锚点anchorPoint
    核心动画2
    核心动画1
    CALayer()CoreAnimation 核心动画 简称 CA
    storyBoard
    本地通知UILocalNotification
    CoreImage 可以用滤镜来处理图片,比如修改饱和度,亮度,对比度等
    GCD(2)
    NSOperation(多线程)2
    给你个图片的网络地址url,如何获取该图片的尺寸
  • 原文地址:https://www.cnblogs.com/loaderman/p/6479458.html
Copyright © 2020-2023  润新知