歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android拍照上傳代碼樣例

相關閱讀:Android拍照上傳程序的xml配置文件 http://www.linuxidc.com/Linux/2011-11/47618.htm

1、LoginWindow.java --登錄窗口

  1. package com.hemi.rhet;  
  2.   
  3. import com.hemi.rhet.R;  
  4.   
  5. import android.app.Activity;  
  6. import android.content.Intent;  
  7. import android.os.Bundle;  
  8. import android.view.KeyEvent;  
  9. import android.view.View;  
  10. import android.view.View.OnClickListener;  
  11. import android.widget.Button;  
  12. import android.widget.CheckBox;  
  13. import android.widget.EditText;  
  14.   
  15. public class LoginWindow extends Activity {  
  16.   
  17.     @Override  
  18.     public void onCreate(Bundle savedInstanceState) {  
  19.         System.out.println("enter LoginWindow.onCreate()!");  
  20.           
  21.         super.onCreate(savedInstanceState);  
  22.           
  23.         setContentView(R.layout.login_window);  
  24.           
  25.         mUserName = (EditText)findViewById(R.id.username);  
  26.         mUserPasswd = (EditText)findViewById(R.id.userpasswd);  
  27.           
  28.         cbx_cmwap = (CheckBox) findViewById(R.id.cbx_cmwap);  
  29.   
  30.         loginButton = (Button) findViewById(R.id.login_button);  
  31.         exitButton = (Button) findViewById(R.id.exit_button);  
  32.           
  33.         loginBtnListener = new View.OnClickListener() {  
  34.             public void onClick(View view) {  
  35.                 LoginWindow.isCmwap = cbx_cmwap.isChecked();  
  36.                   
  37.                 if (view == loginButton) {  
  38.                     launchFetion();  
  39.                 } else if(view == exitButton) {  
  40.                     finish();  
  41.                 }  
  42.             }  
  43.         };  
  44.   
  45.         loginButton.setOnClickListener(loginBtnListener);  
  46.         exitButton.setOnClickListener(loginBtnListener);  
  47.     }  
  48.       
  49.     private void launchFetion() {  
  50.         Intent i = new Intent(this, FuncSelector.class);  
  51.         i.putExtra(KEY_LOGIN_NAME, mUserName.getText().toString());  
  52.         i.putExtra(KEY_LOGIN_PASSWD, mUserPasswd.getText().toString());  
  53.         i.putExtra(KEY_LOGIN_TYPE, cbx_cmwap.isChecked());  
  54.           
  55.         startActivity(i);  
  56.     }  
  57.       
  58.     @Override  
  59.     public boolean onKeyDown(int keyCode, KeyEvent msg) {  
  60. //        System.out.println("enter onKeyDown() in LoginWindow!");   
  61. //           
  62. //        if (null != loginBtnListener) {   
  63. //            View aview = getCurrentFocus();   
  64. //            loginBtnListener.onClick(aview);   
  65. //        }   
  66.         return false;  
  67.     }  
  68.       
  69.     private Button loginButton, exitButton;  
  70.     private EditText mUserName;  
  71.     private EditText mUserPasswd;  
  72.     private CheckBox cbx_cmwap;  
  73.       
  74.     private OnClickListener loginBtnListener;  
  75.       
  76.     public static final String KEY_LOGIN_NAME = "login_name";  
  77.     public static final String KEY_LOGIN_PASSWD = "login_passwd";  
  78.     public static final String KEY_LOGIN_TYPE = "login_type";  
  79.   
  80.     public static boolean isCmwap = false;  
  81. }  

2. FuncSelector.java -- 功能模塊選擇窗口

  1. package com.hemi.rhet;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5.   
  6. import com.hemi.rhet.R;  
  7.   
  8. import android.app.Activity;  
  9. import android.content.Intent;  
  10. import android.os.Bundle;  
  11. import android.util.Log;  
  12. import android.view.Menu;  
  13. import android.view.MenuItem;  
  14. import android.view.View;  
  15. import android.widget.AdapterView;  
  16. import android.widget.GridView;  
  17. import android.widget.SimpleAdapter;  
  18. import android.widget.AdapterView.OnItemClickListener;  
  19.   
  20. public class FuncSelector extends Activity {  
  21.   
  22.     @Override  
  23.     public void onCreate(Bundle savedInstanceState) {  
  24.         Log.i("info""enter LoginWindow.onCreate()!");  
  25.         super.onCreate(savedInstanceState);  
  26.   
  27.         setContentView(R.layout.func_selector);  
  28.   
  29.         initFuncGrids();  
  30.     }  
  31.   
  32.     private void initFuncGrids() {  
  33.         GridView funcSeleView = (GridView) findViewById(R.id.func_selector);  
  34.   
  35.         // 生成動態數組,並且轉入數據   
  36.         ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();  
  37.   
  38.         HashMap<String, Object> map = new HashMap<String, Object>();  
  39.         map.put("ItemImage", R.drawable.photo_upload);          // 添加圖像資源的ID   
  40.         map.put("ItemText", getString(R.string.photo_upload));  // 按序號做ItemText   
  41.         lstImageItem.add(map);  
  42.           
  43.         map = new HashMap<String, Object>();  
  44.         map.put("ItemImage", R.drawable.icon);  
  45.         map.put("ItemText", getString(R.string.sys_config));  
  46.         lstImageItem.add(map);  
  47.           
  48.         for (int i = 1; i <= 10; i++) {  
  49.             map = new HashMap<String, Object>();  
  50.             map.put("ItemImage", R.drawable.icon);          // 添加圖像資源的ID   
  51.             map.put("ItemText""NO." + String.valueOf(i)); // 按序號做ItemText   
  52.             lstImageItem.add(map);  
  53.         }  
  54.               
  55.         // 生成適配器的ImageItem <====> 動態數組的元素,兩者一一對應   
  56.         SimpleAdapter saImageItems = new SimpleAdapter(this// 沒什麼解釋   
  57.                 lstImageItem,// 數據來源   
  58.                 R.layout.night_item,// night_item的XML實現   
  59.   
  60.                 // 動態數組與ImageItem對應的子項   
  61.                 new String[] { "ItemImage""ItemText" },  
  62.   
  63.                 // ImageItem的XML文件裡面的一個ImageView,兩個TextView ID   
  64.                 new int[] {R.id.ItemImage,R.id.ItemText});  
  65.                 //null);   
  66.           
  67.         // 添加並且顯示   
  68.         funcSeleView.setAdapter(saImageItems);  
  69.         //saImageItems.notifyDataSetChanged();   
  70.           
  71.         // 添加消息處理   
  72.         funcSeleView.setOnItemClickListener(new ItemClickListener());  
  73.     }  
  74.       
  75.     public boolean onCreateOptionsMenu(Menu menu) {  
  76.         super.onCreateOptionsMenu(menu);  
  77.         menu.add(0, EXIT_ID,0, R.string.back_button);  
  78.           
  79.         return true;  
  80.     }  
  81.       
  82.     //@Override   
  83.     public boolean onMenuItemSelected(int featureId, MenuItem item) {  
  84.         boolean result = true;  
  85.           
  86.         switch(item.getItemId()) {  
  87.         case EXIT_ID:  
  88.             this.finish();  
  89.             break;  
  90.               
  91.         default:  
  92.             result = super.onMenuItemSelected(featureId, item);  
  93.             break;  
  94.         }  
  95.           
  96.         return result;   
  97.     }  
  98.   
  99.     // 當AdapterView被單擊(觸摸屏或者鍵盤),則返回的Item單擊事件   
  100.     class ItemClickListener implements OnItemClickListener {  
  101.         public void onItemClick(AdapterView<?> arg0,// The AdapterView where the   
  102.                 // click happened   
  103.                 View arg1,// The view within the AdapterView that was clicked   
  104.                 int arg2,// The position of the view in the adapter   
  105.                 long arg3// The row id of the item that was clicked   
  106.         ) {  
  107.             // 在本例中arg2=arg3   
  108.             HashMap<String, Object> item = (HashMap<String, Object>) arg0  
  109.                     .getItemAtPosition(arg2);  
  110.   
  111.             String tmpStr = (String) item.get("ItemText");  
  112.             //item.put("ItemText", tmpStr + tmpStr.substring(tmpStr.length() - 1));   
  113.   
  114.             // 顯示所選Item的ItemText   
  115.             // setTitle((String)item.get("ItemText"));   
  116.             Log.i("info", (String) item.get("ItemText"));  
  117.   
  118.             ((SimpleAdapter) arg0.getAdapter()).notifyDataSetChanged();  
  119.               
  120.             Intent i;  
  121.             switch (arg2) {  
  122.             case 0:  
  123.                 i = new Intent();  
  124.                 i.setClass(FuncSelector.this, PhotoUpload.class);  
  125.                 startActivity(i);  
  126.                 break;  
  127.                   
  128.             case 1:  
  129.                 i = new Intent();  
  130.                 i.setClass(FuncSelector.this, ConfigWindow.class);  
  131.                 startActivity(i);  
  132.                 break;  
  133.                   
  134.             default:  
  135.                 break;  
  136.             }  
  137.         }  
  138.   
  139.     }  
  140.   
  141.     private static final int TAKE_PHOTO_ID = Menu.FIRST;  
  142.     private static final int UPLOAD_PHOTO_ID = Menu.FIRST + 1;  
  143.     private static final int EXIT_ID = Menu.FIRST + 3;  
  144.       
  145. }//FuncSelector  
Copyright © Linux教程網 All Rights Reserved