在Android初次的前期学习中的二个小例子(2)
生活随笔
收集整理的這篇文章主要介紹了
在Android初次的前期学习中的二个小例子(2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Hello13:SQLite數據庫
一、簡述SQLite的概念和主要特性| 類名 | 作用 | 描述 |
| SQLiteOpenHelper類 | 抽象類 | 通過繼承該類,可重寫數據庫創建OnCreat()與更新onUpdate的方法。 通過子類的對象,可使用方法獲得SQLiteDatabase類的對象。 |
| SQLiteDatabase類 | 數據庫訪問類 | 通過該類的對象,可對數據庫進行增刪改查的操作 |
| Cursor | 游標 | 可以簡單理解為指向數據庫中某 一個記錄的指針 |
?? ?? ? 調用SimpleCursorAdapter游標適配器時,需要數據的主鍵為“_id”(注意下劃線)
五、調用SQLiteOpenHelper的子類 代碼如下: public class MainActivity extends Activity {private Context mContext;/** * Content的意思為“上下文”,它是抽象類的基類,我們一般見到的Activity、Service和Application都是ContextImpl類。 * 需要指明的是: Context提供了一個應用的運行環境,在Context的大環境里,應用才可以訪問資源,才能完成和其他組件、服務的交互. * 所以:假設在Activity中需要調用時,在類的成員變量中加入mContext,并初始化為Activity的本身this。 */@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = MainActivity.this;DBHelper dbHelper = new DBHelper(mContext,"my_db",null ,1);SQLiteDatabase sqLiteDatabase = dbHelper.getWritableDatabase(); //onCreate()和onUpgrade()被調用 } }?
Hello14:Camera相機的操作(案例如果出現異常,請Rebuild Project一下) 一、打開系統的照相機 ? ? 1.調用系統相機的操作比較簡單,但是我們記憶的一個是步驟,而不是代碼。所以先給出步驟描述: 使用Intent調用系統相機,相機拍照后,會返回一個Intent給onActivityResult。在Intent的extra部分包含剛剛拍照的編碼過的Bitmap。 Intent it = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //調用系統相機startActivityForResult(it,Activity.DEFAULT_KEYS_DIALER); //拍照完成后,自動返回Intent給onActivityResult//重寫onActivityResult方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {if(requestCode == Activity.RESULT_OK){ //返回結果正常Bundle bundle = data.getExtras(); Bitmap bitmap = (Bitmap) bundle.get("data"); //獲取Bitmap img_show.setImageBitmap(bitmap);} }
?? ?2.使用資源定位Uri和文件File的操作,把圖片保存下來
//打開系統相機 private void openSystemCamrea() {Intent intent = new Intent();intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);//原圖保存File file = new File(getExternalFilesDir(""),"photo.jpg");Uri uri = Uri.fromFile(file); //file的唯一資源標識符uriintent.putExtra(MediaStore.EXTRA_OUTPUT,uri); //使用intent連接照相機的輸出到uristartActivityForResult(intent,1); //調回函數onAtcitivyResult(),requestCode標識該調回 }@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {if(resultCode == RESULT_OK) {switch (requestCode) {case 1://顯示圖片/*Bitmap bitmap = (Bitmap) data.getExtras().get("data"); //獲取返回結果的縮略圖mImageView.setImageBitmap(bitmap); //使用ImageView顯示位圖*///保存圖片,由于圖片較大,保存在外部存儲,路徑為storage/emulated/0/Android/data/files下File file = new File(getExternalFilesDir(""), "photo.jpg");Bitmap bitmap = null;try {bitmap = BitmapFactory.decodeStream(new FileInputStream(file));} catch (FileNotFoundException e) {e.printStackTrace();}if (bitmap != null) {mImageView.setImageBitmap(bitmap);}break;}} }?
二、打開我的自定義照相機 詳情見項目,這里提供一個鏈接,我是根據這個寫完自定義相機的。http://www.runoob.com/w3cnote/android-tutorial-camera.html 效果預覽圖如下:然而重點來了!!!在這里先申明一下下面是踩過的坑: 坑1:android系統相機權限兼容問題 在一般情況下,上述代碼運行沒有任何問題;可是當把targetSdkVersion指定成24及之上并且在API>=24的設備上運行時,會拋出異常:這是因為在Android6.0之后引入運行時權限,如果接收file://Uri的app沒有申請READ_EXTERNAL_STORAGE權限,在讀取文件時會引發崩潰。總而言之,就是Android不再允許在app中把file://Uri暴露給其他app,包括但不局限于通過Intent或ClipData 等方法。 所以解決方案:https://blog.csdn.net/android_an/article/details/77506915?(android 7.0 因為Uri.fromFile引起的FileUriExposedException異常?見此網頁) 詳情請見項目的OpenUpdateCamera()方法、res/xml/share_paths.xml文件和onActivityResult()方法 坑2:沒有FileProvider包,加入包后沒有R資源或APPT2異常!? 修改后的代碼見原文件,如果出現異常,請Rebuild Project一下(點擊標題下載)
轉載于:https://www.cnblogs.com/jdemarryme/p/9292057.html
總結
以上是生活随笔為你收集整理的在Android初次的前期学习中的二个小例子(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visio软件方案UML选择
- 下一篇: android sina oauth2.