欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android本地圖片,安卓本地圖片

android 已知本地圖片的路徑,如何將他設(shè)為imageview的背景?

android已知本地圖片的路徑,將他設(shè)為imageview的背景,文件夾的路徑:

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、扶溝ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的扶溝網(wǎng)站制作公司

String img_path = "image will be with image type"; ? ?

Bitmap bmp= BitmapFactory.decodeFile(img_path);

ImageView iv= (ImageView)findViewById(R.id.img);

iv.setImageBitmap(bmp)。

添加文件的權(quán)限:

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/

uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/

android,如何將獲取的本地圖片其設(shè)為我的應(yīng)用界面的背景

Android本身不提供使用圖片路徑來設(shè)置view背景的。既然我們已經(jīng)知道了圖片的path,就可以先將圖片轉(zhuǎn)成drawable,然后在設(shè)置給LinearLayout來做背景。

android本地緩存圖片最大取多大的空間較為

相冊(cè)圖片預(yù)取緩存策略是內(nèi)存緩存(硬引用LruCache、軟引用SoftReferenceBitmap)、外部文件緩存(context.getCachedDir()),緩存中取不到的情況下再向服務(wù)端請(qǐng)求下載圖片。同時(shí)緩存三張圖片(當(dāng)前預(yù)覽的這張,前一張以及后一張)。1.內(nèi)存緩存//需要導(dǎo)入外部jar文件 android-support-v4.jar

import android.support.v4.util.LruCache;

//開辟8M硬緩存空間

private final int hardCachedSize = 8*1024*1024;

//hard cache

private final LruCacheString, Bitmap sHardBitmapCache = new LruCacheString, Bitmap(hardCachedSize){

@Override

public int sizeOf(String key, Bitmap value){

return value.getRowBytes() * value.getHeight();

}

@Override

protected void entryRemoved(boolean evicted, String key, Bitmap oldValue, Bitmap newValue){

Log.v("tag", "hard cache is full , push to soft cache");

//硬引用緩存區(qū)滿,將一個(gè)最不經(jīng)常使用的oldvalue推入到軟引用緩存區(qū)

sSoftBitmapCahe.put(key, new SoftReferenceBitmap(oldValue));

}

}

詳細(xì)

Android 保存圖片到本地。

這里只介紹按下“保存”后如何將一個(gè)Bitmap對(duì)象保存為圖片文件的執(zhí)行步驟,對(duì)圖片的下載,圖片到Bitmap對(duì)象的轉(zhuǎn)換,Bitmap對(duì)象的格式轉(zhuǎn)換和壓縮,以及界面設(shè)計(jì)部分全部都忽略了。

確定存儲(chǔ)路徑

獲取外部存儲(chǔ)權(quán)限

確定外部存儲(chǔ)狀態(tài)

確定文件名

保存到文件中

發(fā)送廣播,通知系統(tǒng)掃描保存后的文件

確定存儲(chǔ)路徑

在Android中文件存儲(chǔ)路徑包括內(nèi)部存儲(chǔ)和外部存儲(chǔ)兩種類型。

對(duì)內(nèi)部存儲(chǔ),當(dāng)一個(gè)app被安裝到手機(jī)后,Android系統(tǒng)會(huì)在內(nèi)部存儲(chǔ)的/data/data/目錄下創(chuàng)建一個(gè)以包名稱命名的文件夾。例如/data/data/com.sohu.inputmethod.sogou/。一個(gè)應(yīng)用對(duì)內(nèi)部存儲(chǔ)的所有訪問都被限制在這個(gè)文件夾中,也就是說Android應(yīng)用只能在該目錄中讀取,創(chuàng)建,修改文件。對(duì)該目錄之外的其他內(nèi)部存儲(chǔ)中的目錄都沒有任何操作的權(quán)限。因此,如果將圖片保存在內(nèi)部存儲(chǔ)中,只能被應(yīng)用自身讀取,其他應(yīng)用均無法讀取。如果需要讓系統(tǒng)圖庫(kù),相冊(cè)或其他應(yīng)用能夠找到保存的圖片,必須將圖片保存到外部存儲(chǔ)中。

對(duì)外部存儲(chǔ),當(dāng)一個(gè)app被安裝到手機(jī)后,Android系統(tǒng)會(huì)在外部存儲(chǔ)的/Android/data/目錄下創(chuàng)建一個(gè)以包名命名的文件夾(這里第一個(gè)/不是根路徑,而是相對(duì)外部存儲(chǔ)所掛載路徑的相對(duì)路徑)。例如/storage/emulated/0/Android/data/com.sohu.inputmethod/。這個(gè)路徑同樣只能被應(yīng)用自身讀取,其他應(yīng)用不能訪問。因此,也不能將圖片保存在這個(gè)目錄中。

除外部存儲(chǔ)的/Android目錄之外的其他目錄一般都是可以被其他應(yīng)用訪問的。目前,大多數(shù)應(yīng)用都會(huì)在外部存儲(chǔ)的根路徑下建立一個(gè)類似包名的多層目錄,以存儲(chǔ)需要共享的文件。例如/storage/emulated/0/sogou/image/。還需要注意的是,很多查看圖片的應(yīng)用都支持按照文件夾來查看圖片。如果將圖片所在的文件夾取名為image,photo之類的,就無法和其他文件夾區(qū)分開,用戶也不能識(shí)別該文件夾的用途。因此最好取一個(gè)有區(qū)分度的文件夾名字,例如百度貼吧就保存在/tieba目錄,微信是保存在/tencent/MicroMsg/WeiXin目錄。

由于Android系統(tǒng)的碎片化問題,不同設(shè)備上外部存儲(chǔ)的路徑很可能會(huì)不同,因此,不能直接使用/storage/emulated/0/作為外部存儲(chǔ)的根路徑。

Android SDK中 Environment類 提供了getExternalStorageDirectory()方法來獲取外部存儲(chǔ)的根路徑。示例如下:

[java]?view plain?copy

String?dir?=?Environment.getExternalStorageDirectory().getAbsolutePath()?+?"/tencent/MicroMsg/WeiXin/"

需要注意的是Environment.getExternalStorageDirectory()返回的路徑中最后一個(gè)字符不是/,如果需要?jiǎng)?chuàng)建子目錄,需要在子目錄的前后都加上/。

獲取外部存儲(chǔ)權(quán)限

由于需要在外部存儲(chǔ)中寫文件,需要在AndroidManifest.xml中增加如下的權(quán)限聲明。

[java]?view plain?copy

uses-permission?android:name="android.permission.WRITE_EXTERNAL_STORAGE"/

確定外部存儲(chǔ)狀態(tài)

由于外部存儲(chǔ)需要被掛載,也可以被卸載,在寫入文件之前,需要先判斷外部存儲(chǔ)的狀態(tài)是否正常。只有狀態(tài)正常情況下才可以執(zhí)行保存文件的操作。獲取外部存儲(chǔ)狀態(tài)同樣是通過Environment類,通過Environment.getExternalStorageState()可以得到一個(gè)字符串,來表示外部存儲(chǔ)的狀態(tài)。同時(shí)在Environment類中定義了一系列的String常量表示不同的狀態(tài)。在所有的狀態(tài)中只有內(nèi)部存儲(chǔ)處于Environment.MEDIA_MOUNTED狀態(tài)時(shí)才可以讀寫文件,因此,需要將獲取到的狀態(tài)和Environment.MEDIA_MOUNTED做比較,如果不是Environment.MEDIA_MOUNTED狀態(tài),就返回保存失敗。示例如下。

[java]?view plain?copy

//獲取內(nèi)部存儲(chǔ)狀態(tài)

String?state?=?Environment.getExternalStorageState();

//如果狀態(tài)不是mounted,無法讀寫

if?(!state.equals(Environment.MEDIA_MOUNTED))?{

return;

}

確定文件名

保存的圖片文件名可以由應(yīng)用根據(jù)自身需要自行確定,一般來說需要有一個(gè)命名規(guī)則,然后根據(jù)命名規(guī)則計(jì)算得到文件名。

這里列舉幾種常見的命名規(guī)則。

隨機(jī)命名

這種命名規(guī)則是隨機(jī)生成一個(gè)字符串或一組數(shù)字來對(duì)圖片命名。

字符串可以通過UUID來生成,數(shù)字可以通過Random()類來生成,例如:

[java]?view plain?copy

//通過UUID生成字符串文件名

String?fileName1?=?UUID.randomUUID().toString();

//通過Random()類生成數(shù)組命名

Random?random?=?new?Random();

String?fileName2?=?String.valueOf(random.nextInt(Integer.MAX_VALUE));

這種命名規(guī)則是按照數(shù)字從小到大的順序來對(duì)圖片命名。

在程序啟動(dòng)時(shí)先獲取圖片文件名中當(dāng)前最大數(shù)字的文件名,之后每保存一張圖片就將數(shù)字加1即可。

時(shí)間命名

這種命名規(guī)則是根據(jù)保存圖片的當(dāng)前系統(tǒng)時(shí)間來對(duì)圖片命名。

系統(tǒng)時(shí)間可以通過System.currentTimeMillis()來獲取,不過System.currentTimeMillis()獲取到的時(shí)間是一個(gè)long型的整數(shù),如果用它做文件名,無法通過文件名直接看出文件的具體保存時(shí)間??梢酝ㄟ^SimpleDateFormat先對(duì)當(dāng)前時(shí)間做格式化,然后再將其作為文件名來使用。例如:

[java]?view plain?copy

使用這種命名規(guī)則來命名需要注意的是同一秒鐘可能會(huì)有多張圖片需要保存,在得到當(dāng)前系統(tǒng)時(shí)間對(duì)應(yīng)的文件名后,需要判斷該文件是否存在。如果文件已經(jīng)存在,需要重新生成文件名。重新生成的文件名可以在之前的文件名后加上一個(gè)隨機(jī)數(shù)后綴,或者是用毫秒數(shù)做后綴。

Calendar?now?=?new?GregorianCalendar();

SimpleDateFormat?simpleDate?=?new?SimpleDateFormat("yyyyMMddHHmmss",?Locale.getDefault());

String?fileName?=?simpleDate.format(now.getTime());

文件URL命名

每張網(wǎng)絡(luò)圖片都有一個(gè)對(duì)應(yīng)的圖片URL,可以根據(jù)圖片的URL來對(duì)圖片命名。

不過URL中會(huì)包含一些不能用作文件名的特殊字符,此外直接用URL來命名可能會(huì)帶來安全問題。為了避免這兩個(gè)問題,可以將圖片URL的MD5值作為文件名來使用。由于MD5是不可逆的,也就無法通過MD5值反向得到圖片URL,同時(shí)MD5值對(duì)應(yīng)的字符串只包含[0-9A-Z],不包含特殊字符,可是作為文件名使用。

由于每張圖片的URL是唯一的,其對(duì)應(yīng)的文件名也就是唯一的。如果需要每張網(wǎng)絡(luò)圖片只能生成一個(gè)文件,不允許保存為多份拷貝,可以用這種命名規(guī)則。在得到URL對(duì)應(yīng)的文件名后,先判斷文件是否已經(jīng)存在,如果已經(jīng)存在,直接覆蓋或不處理。

保存到文件中

保存圖片文件時(shí),通過Bitmap的compress()方法將Bitmap對(duì)象壓縮到一個(gè)文件輸出流中,然后flush()即可。示例如下。

[java]?view plain?copy

try?{

File?file?=?new?File(dir?+?fileName?+?".jpg");

FileOutputStream?out?=?new?FileOutputStream(file);

mBitmap.compress(Bitmap.CompressFormat.JPEG,?100,?out);

out.flush();

out.close();

}?catch?(Exception?e)?{

e.printStackTrace();

}

發(fā)送廣播,通知系統(tǒng)掃描保存后的文件

至此,已經(jīng)實(shí)現(xiàn)將Bitmap對(duì)象保存成外部存儲(chǔ)中的一個(gè)jpg格式的文件。但此時(shí)該文件只是保存在外部存儲(chǔ)的一個(gè)目錄中,必須進(jìn)入其所在的目錄中才可以看到。在系統(tǒng)圖庫(kù),相冊(cè)和其他應(yīng)用中無法看到新建的圖片文件。為了讓其他應(yīng)用能夠知道圖片文件被創(chuàng)建,必須通知MediaProvider服務(wù)將新建的文件添加到圖片數(shù)據(jù)庫(kù)中。

Android系統(tǒng)中常駐一個(gè)MediaProvider服務(wù),對(duì)應(yīng)的進(jìn)程名為android.process.media,此服務(wù)用來管理本機(jī)上的媒體文件,提供媒體管理服務(wù)。在系統(tǒng)開機(jī)或者收到外部存儲(chǔ)的掛載消息后,MediaProvider會(huì)調(diào)用MediaScanner,MediaScanner會(huì)掃描外部存儲(chǔ)中的所有文件,根據(jù)文件類型的后綴將文件信息保存到對(duì)應(yīng)的數(shù)據(jù)庫(kù)中,供其他APP使用。

MediaScannerReceiver是一個(gè)廣播接收者,當(dāng)它接收到特定的廣播請(qǐng)求后,就會(huì)去掃描指定的文件,并根據(jù)文件信息將其添加到數(shù)據(jù)庫(kù)中。當(dāng)圖片文件被創(chuàng)建后,就可以發(fā)送廣播給MediaScannerReceiver,通知其掃描新建的圖片文件。示例如下。

[java]?view plain?copy

try?{

File?file?=?new?File(dir?+?fileName?+?".jpg");

FileOutputStream?out?=?new?FileOutputStream(file);

mBitmap.compress(Bitmap.CompressFormat.JPEG,?100,?out);

out.flush();

out.close();

//保存圖片后發(fā)送廣播通知更新數(shù)據(jù)庫(kù)

Uri?uri?=?Uri.fromFile(file);

sendBroadcast(new?Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,?uri));

}?catch?(Exception?e)?{

e.printStackTrace();

}

圖片的異步保存

保存圖片文件時(shí),如果圖片很大,或需要同時(shí)保存多張圖片時(shí),就需要較多的時(shí)間。為了避免阻塞UI線程,出現(xiàn)幀率下降或ANR,通常需要將圖片保存操作放到線程中去執(zhí)行。當(dāng)圖片保存完畢后通過sendMessage()方法通知UI線程保存結(jié)果。

將圖片保存放到后臺(tái)線程去執(zhí)行需要增加一些同步機(jī)制避免一些多線程問題。例如有兩張圖片需要保存,分別放到兩個(gè)線程中去執(zhí)行,保存圖片時(shí)文件名以數(shù)字順序增加。第一個(gè)線程選中文件名為125.jpg,但此時(shí)文件還未創(chuàng)建,第二個(gè)線程判斷125.jpg不存在,于是也選取125.jpg作為文件名,兩張圖片就保存到同一個(gè)文件中了。

android手機(jī)里的照片在哪個(gè)文件夾里

android手機(jī)里的照片在DCIM-Camera文件夾。

具體步驟:

1、先將手機(jī)與電腦相連,在電腦上找到可移動(dòng)磁盤設(shè)備,點(diǎn)擊打開。

2、然后在所有文件夾中找到DCIM文件夾,點(diǎn)擊打開。DCIM (Data Center Infrastructure management) 數(shù)據(jù)中心基礎(chǔ)設(shè)施管理。

3、然后在DCIM文件夾中找到camera文件夾,就找到照片了。

擴(kuò)展資料:

定義

1. DCIM (Data Center Infrastructure management) 數(shù)據(jù)中心基礎(chǔ)設(shè)施管理 是將IT(信息技術(shù))和設(shè)備管理結(jié)合起來對(duì)數(shù)據(jù)中心關(guān)鍵設(shè)備進(jìn)行集中監(jiān)控、容量規(guī)劃等集中管理。通過軟件、硬件和傳感器等,DCIM提供一個(gè)獨(dú)立的管理平臺(tái),對(duì)數(shù)據(jù)中心IT設(shè)備和基礎(chǔ)設(shè)施進(jìn)行實(shí)時(shí)監(jiān)控和管理。

3. 離散福鏡像法:方程(MPIE)的矩量法是目前分析微帶結(jié)構(gòu)的主要方法之一.MPIE算法的核心是空域格林函數(shù)的求解.提出了二級(jí)離散復(fù)鏡像法(DCIM)與表面波處理相結(jié)合的方法對(duì)空域格林函數(shù)進(jìn)行計(jì)算.根據(jù)表面波的性質(zhì),提出了2種二級(jí)DCIM和表面波相結(jié)合的方案,分段比較兩方案的...

4. 接口模塊:Dominion 電腦接口模塊 (DCIM),這是一種非常小的轉(zhuǎn)接頭,直接插入服務(wù)器的鍵盤、視頻及鼠標(biāo)連接端口。

5. DCIM(Data Center Integrated Management)數(shù)據(jù)中心集成管理

參考資料:DCIM-百度百科

標(biāo)題名稱:android本地圖片,安卓本地圖片
本文URL:http://chinadenli.net/article26/dsiiejg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站移動(dòng)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣、域名注冊(cè)、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化