android手電源碼






public class MainActivity extends Activity {
    private Button bu1;
    private Camera camera;
    private Parameters parameters;
    private static boolean kaiguan = true;
    public int back = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                        
        setContentView(R.layout.activity_main);
        LinearLayout container = (LinearLayout)findViewById(R.id.Acc);
        new AdView(this,container).DisplayAd();
        bu1=(Button)findViewById(R.id.bu1);
        bu1.setOnClickListener(new OnClickListener() {
                            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(kaiguan){
                    bu1.setBackgroundResource(R.drawable.on);
                    camera = Camera.open();
                    parameters = camera.getParameters();
                    parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    camera.setParameters(parameters);
                    kaiguan = false;
                                    
                }else{
                    bu1.setBackgroundResource(R.drawable.off);
                    parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
                    camera.setParameters(parameters);
                    kaiguan = true;
                    camera.release();
                }
            }
        });
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        menu.add(0,1,1,"關於");
        menu.add(1,2,2,"退出");
        return super.onCreateOptionsMenu(menu);
    }
    public boolean onOptionsItemSelected(MenuItem item){
        switch (item.getItemId()) {
        case 1:
            AlertDialog.Builder b = new Builder(MainActivity.this);
            b.setTitle("關於");
            b.setMessage("卡卡手電做出最簡潔的應用                                                            作者:某人");
            b.setCancelable(true);
            b.setNegativeButton("確定", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface d, int which) {
                    d.dismiss();
                }
            });
            b.show();
            break;
        case 2:
            Myback();
            break;
        }
        return super.onOptionsItemSelected(item);
    }
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK){
            back++;
            switch (back) {
            case 1:
                Toast.makeText(MainActivity.this, "再按一次退出卡卡手電", Toast.LENGTH_LONG).show();
                break;
            case 2:
                back = 0;//初始化back值
                Myback();
                break;
            }
            return true;//設置成false讓back失效    ,true表示 不失效
        }
        else{
            return super.onKeyDown(keyCode, event);
        }
    }
    public void Myback(){
        if(kaiguan){//開關關閉時
            MainActivity.this.finish();
            android.os.Process.killProcess(android.os.Process.myPid());//關閉進程
        }else if(!kaiguan){//開關打開時
            camera.release();
            MainActivity.this.finish();
            android.os.Process.killProcess(android.os.Process.myPid());//關閉進程
            kaiguan = true;//避免,打開開關後退出程序,再次進入不打開開關直接退出時,程序錯誤
        }
    }
}
<!-- 打開Camera的權限 --> 
    <uses-permission android:name="android.permission.CAMERA"/>  
    <uses-feature android:name="android.hardware.camera" />  
    <uses-feature android:name="android.hardware.autofocus"/>     
         <!-- 開啓閃光燈權限 -->  
    <uses-permission android:name="android.permission.FLASHLIGHT"/>  
          
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章