android 动态显示数字

package com.jieen.viewc;


import java.util.Timer;
import java.util.TimerTask;


import android.app.Activity;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;


public class MainActivity extends Activity {


private final String tag = "JIEEN";
private final int MSG_DIG = 102101;
private int[] images = new int[]{  
       R.drawable.num_0,  
       R.drawable.num_1,  
       R.drawable.num_2,  
       R.drawable.num_3,  
       R.drawable.num_4,
       R.drawable.num_5,  
       R.drawable.num_6,  
       R.drawable.num_7,  
       R.drawable.num_8,  
       R.drawable.num_9,
   };  
private RelativeLayout relLayout = null;
private ImageView img_bai = null;
private ImageView img_shi = null;
private ImageView img_ge = null;
private Button btnShowHide = null;

private int testNum = 0;
private int showHiden = 0;
private boolean isQuit = false;
private String digStr = "";
private Timer digTimer = null;


Handler playerHandle = new Handler(){
public void handleMessage(Message msg) {
Log.i(tag, " "+msg);
switch(msg.what)
{
case MSG_DIG:
Log.i(tag, "MSG_DIG Num="+msg.arg1);
showImgByNum(msg.arg1,false);
break;
default:
Log.i(tag, "Default");
break;
}
}
};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        img_bai = (ImageView)findViewById(R.id.img_bai);
        img_shi = (ImageView)findViewById(R.id.img_shi);
        img_ge = (ImageView)findViewById(R.id.img_ge);
        btnShowHide = (Button)findViewById(R.id.btnHiden);
        btnShowHide.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(((++showHiden) % 2) ==0)
{
btnShowHide.setText(R.string.strHiden);
img_bai.setVisibility(View.VISIBLE);
img_shi.setVisibility(View.VISIBLE);
img_ge.setVisibility(View.VISIBLE);
//relLayout.setVisibility(View.VISIBLE);
}else
{
btnShowHide.setText(R.string.strShowNum);
img_bai.setVisibility(View.INVISIBLE);
img_shi.setVisibility(View.INVISIBLE);
img_ge.setVisibility(View.INVISIBLE);
//relLayout.setVisibility(View.INVISIBLE);
}
}
});
/*        
        showImgByNum(267,false);
      new Thread(){
     public void run() {
     while(!isQuit)
     {
     try {
testNum++;
Log.i(tag, "Num:"+testNum);
Message msg = new Message();
msg.what = MSG_DIG; 
playerHandle.sendEmptyMessage(MSG_DIG);
Thread.sleep(1000);

} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }
     }
      }.start();
      */
    }




    private void showImgByNum(int num,boolean showZero) {
    int bai = num/100;
    int shi = num/10%10;
    int ge = num%10;
    Log.i(tag, "bai:"+bai+" shi:"+shi+" ge:"+ge);
    if((bai == 0) && (!showZero))
    {
    img_bai.setVisibility(View.INVISIBLE);
    }
    else
    {
    img_bai.setVisibility(View.VISIBLE);
    img_bai.setImageBitmap(BitmapFactory.decodeResource(getResources(), images[bai]));
    }
    if((bai == 0) && (shi == 0) && (!showZero))
    {
    img_shi.setVisibility(View.INVISIBLE);
    }
    else
    {
    img_shi.setVisibility(View.VISIBLE);
    img_shi.setImageBitmap(BitmapFactory.decodeResource(getResources(), images[shi]));
    }
img_ge.setImageBitmap(BitmapFactory.decodeResource(getResources(), images[ge]));

}
    
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    
    switch(keyCode)
    {
    case KeyEvent.KEYCODE_0:
    case KeyEvent.KEYCODE_1:
    case KeyEvent.KEYCODE_2:
    case KeyEvent.KEYCODE_3:
    case KeyEvent.KEYCODE_4:
    case KeyEvent.KEYCODE_5:
    case KeyEvent.KEYCODE_6:
    case KeyEvent.KEYCODE_7:
    case KeyEvent.KEYCODE_8:
    case KeyEvent.KEYCODE_9:
    Log.i(tag, "Your Press:"+(keyCode-7));
    handleNumPlay((keyCode-7));
    break;
    }
    return super.onKeyDown(keyCode, event);
    }
    private void handleNumPlay(int num) {
    if(digStr.length()>=3)
    {
    digStr=""+num;
    Log.e(tag, "DigNum:超出范围,DigStr:"+digStr);
    }
    else
    {
    digStr = digStr+num;
    Log.i(tag, "DigNum:"+digStr);
    }
    digTimer = new Timer();
digTimer.schedule(new TimerTask() {
public void run() {
int digInt = Integer.parseInt(digStr);
Message msg = new Message();
msg.what = MSG_DIG; 
msg.arg1 = digInt;
playerHandle.sendMessage(msg);
}
}, 500);
/*
Message msg = new Message();
msg.what = MSG_DIG; 
playerHandle.sendEmptyMessage(MSG_DIG);
*/
}




@Override
    protected void onDestroy() {
    Log.i(tag, "Destroy");
    isQuit = true;
    super.onDestroy();
    }


@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值