編輯:關於Android編程
在應用的圖集中,通常會給用戶提供保存圖片的功能,讓用戶可以將自己喜歡的圖片保存到系統相冊中.
這個功能其實很好做,系統提供了現成的API:
簡單的來說就這一行代碼:
[java] MediaStore.Images.Media.insertImage(getContentResolver(), mBitmap, "", "");
MediaStore.Images.Media.insertImage(getContentResolver(), mBitmap, "", "");
這個方法的返回值及為插入圖片的路徑
[java] String url = MediaStore.Images.Media.insertImage(getContentResolver(), mBitmap, "", "");
String url = MediaStore.Images.Media.insertImage(getContentResolver(), mBitmap, "", "");
但是在很多機器(比如G7,G11)上調用之後,進入相冊並看不到剛才保存的那張圖片,需要將機器重啟後在系統相冊中才會顯示出來,大大影響了用戶體驗
這是由於機器系統緩存的問題.需要我們在插入圖片之後往刷新下相冊環境:
這裡有兩種方法:
[java]
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
或者:
[java]
final MediaScannerConnection msc = new MediaScannerConnection(mContext, new MediaScannerConnectionClient() {
public void onMediaScannerConnected() {
msc.scanFile("/sdcard/image.jpg", "image/jpeg");
}
public void onScanCompleted(String path, Uri uri) {
msc.disconnect();
}
});
final MediaScannerConnection msc = new MediaScannerConnection(mContext, new MediaScannerConnectionClient() {
public void onMediaScannerConnected() {
msc.scanFile("/sdcard/image.jpg", "image/jpeg");
}
public void onScanCompleted(String path, Uri uri) {
msc.disconnect();
}
}); 這裡要注意的是,發送廣播或者直接調用掃描整個SD卡,實際上效率會比較低,也會增加耗電量.
上面提到,插入圖片的方法對應的返回值為圖片保存的絕對路徑. 因此我們只要獲取該路徑,發送廣播掃描該路徑即可.
[java]
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()+ picPath)));
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()+ picPath)));
本文給大家帶來一個很實用的小控件ClearEditText,就是在Android系統的輸入框右邊加入一個小圖標,點擊小圖標可以清除輸入框裡面的內容,IOS上面直接設置某個
android系統中的每個ViewGroup的子類都具有下面三個和TouchEvent處理密切相關的方法: 1)public boolean dispatchTouc
在介紹本文動畫效果實現之前,先來介紹屬性動畫相關的幾個知識點。ValueAnimator與ObjectAnimator。 Interpolator插值器與TypeEval
13.如何全編譯代碼?由於上面介紹了如何連接真機進行調試,因此必須趕緊補充上全編譯的方法。因為要進行聯機調試,之前首先得將對應的代碼進行全編譯。很多新人在進行聯機調試的時