真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android讀取圖片,android獲取圖片uri

android編程:讀取指定文件夾下所有png圖片

1、程序,把Assets中的圖像顯示出來

“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)公司的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。

try {

BufferedInputStream bis = new BufferedInputStream(getAssets()

.open("a.bmp"));

Bitmap bm = BitmapFactory.decodeStream(bis);

imageView01.setImageBitmap(bm);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("==========file not found======");

}

2、原理:Android中的資源分析

資源是Android應(yīng)用程序中重要的組成部分。在應(yīng)用程序中經(jīng)常會使用字符串、菜單、圖像、聲音、視頻等內(nèi)容,都可以稱之為資源。通過將資源放到與apk文件中與Android應(yīng)用程序一同發(fā)布,在資源文件比較大的情況下,可以通過將資源作為外部文件來使用,我們將分析如何在Android應(yīng)用程序中存儲這些資源。

一、資源的存儲

在android中,資源大多都是保存在res目錄中,例如布局資源以XML文件的形式保存在res\layout目錄中;圖像資源保存著res\drawable目錄中;菜單資源保存在res\menu目錄中。ADT在生成apk文件時,這些目錄中的資源都會被編譯,然后保存到apk文件中。如果將資源文件放到res\raw目錄中,資源將在不編譯的情況下放入apk文件中。在程序運(yùn)行時可以使用InputStream來讀取res\raw目錄中的資源。

如果使用的資源文件過大,我們可以考慮將資源文件作為外部文件單獨(dú)發(fā)布。Android應(yīng)用程序會從手機(jī)內(nèi)存或者SD卡讀取這些資源文件。

二、資源的種類

從資源文件的類型來劃分,我們可以將資源文件劃分為XML、圖像和其它。以XML文件形式存儲的資源可以放在res目錄中的不同子目錄里,用來表示不同種類的資源;而圖像資源會放在res\drawable目錄中。除此之外,可以將任意的資源嵌入Androidy應(yīng)用程序中。比如音頻和視頻等,一般這些資源放在res\raw目錄中。

表1、 Android支持的資源

目錄 資源類型 描述

Res\values

XML

保存字符串、顏色、尺寸、類型、主題等資源,可以是任意文件名。對于字符串、顏色、尺寸等信息采用

Key-value形式表示,對于類型、主題等資源,采用其它形式表示

Res\layout

XML

保存布局信息。一個資源文件表示一個View或ViewGroup的布局

Res\menu

XML

保存菜單資源。一個資源文件表示一個菜單(包括子菜單)

Res\anim

XML

保存與動畫相關(guān)的信息??梢远x幀(frame)動畫和補(bǔ)間(tween)動畫

Res\xml

XML

在該目錄的文件可以是任意類型的XML文件,這些XML文件可以在運(yùn)行時被讀取。

Res\raw

任意類型

在該目錄中的文件雖然也會被封裝在apk文件中,但不會被編譯。在該目錄中可以放置任意類型的文件,例如,各種類型的文檔、音頻、視頻文件等

Res\drawable

圖像

該目錄中的文件可以是多種格式的圖像文件,例如,bmp、png、gif、jpg等。在該目錄中的圖像不需要分辨率非常高,aapt工具會優(yōu)化這個目錄中的圖像文件。如果想按字流讀取該目錄下的圖像文件,需要將圖像文件放在res\raw目錄中。

assets

任意類型

該目錄中的資源與res\raw中的資源一樣,也不會被編譯。但不同的是該目錄中的資源文件都不會生出資源ID

三、資源文件的命名

每一個資源文件或資源文件中的key-value對都會在ADT自動生成的R類(在R.java文件中)中找到相對應(yīng)的ID.其中資源文件名或key-value對中的key就是R類中的java變量名。因此,資源文件名好key的命名首先要符合java變量的命名規(guī)則。

除了資源文件和key本身的命名要遵循相應(yīng)的規(guī)則外,多個資源文件和key也要遵循唯一的原則。也就是說,同類資源的文件名或key不能重復(fù)。例如,兩個表示字符串資源的key不能重復(fù),就算這兩個key在不同的XML文件中也不行。

由于ADT在生成ID時并不考慮資源文件的擴(kuò)展名,因此,在res\drawable、res\raw等目錄中不能存在文件名相同,擴(kuò)展名不同的資源文件。例如在res\drawable目錄不能同時放置icon.jpg和icon.png文件。

四、資源使用示例

在Android SDK中不僅提供了大量的系統(tǒng)資源,而且還允許開發(fā)人員定制自己的資源。不管是系統(tǒng)資源,還是自定義的資源,一般都會將這些資源放在res目錄中,然后通過R類中的相應(yīng)ID來引用這些資源。接下來將針對于XML類資源的使用進(jìn)行分析。

XML資源實際上就是XML格式的文本文件,這些文件必須放在res\xml目錄中??梢酝ㄟ^Resources.getXml方法獲得處理指定XML文件的XmlResourceParser對象。實際上,XmlResourceParser對象處理XML文件的的過程主要是針對不同的狀態(tài)點處理相應(yīng)的代碼,比如開始分析文檔、開始分析標(biāo)簽、分析標(biāo)簽完成等,XmlResourceParser通過調(diào)用next方法不斷更新當(dāng)前的狀態(tài)。

下面的代碼,則是展示如何讀取res\xml目錄中的XML文件的內(nèi)容,先在res\xml目錄中建立一個xml文件。將AndroidManifest.xml文件復(fù)制到res\xml目錄中,并改名為android.xml。

在準(zhǔn)備完XML文件后,在onCreate方法中開始讀取XML文件的內(nèi)容,代碼如下:

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TextView textView=(TextView)findViewById(R.id.textview);

StringBuffer sb=new StringBuffer();

// 獲得處理android。xml文件的XmlResourceParser對象

XmlResourceParser xml=getResources().getXml(R.xml.android);

try

{

//切換到下一個狀態(tài),并獲得當(dāng)前狀態(tài)的類型

int eventType =xml.next();

while(true)

{

//文檔開始狀態(tài)

if(eventType == XmlPullParser.START_DOCUMENT)

{

Log.d("start_document","start_document");

}

//標(biāo)簽開始狀態(tài)

else if(eventType ==XmlPullParser.START_TAG)

{

Log.d("start_tag",xml.getName());

//將標(biāo)簽名稱和當(dāng)前標(biāo)簽的深度(根節(jié)點的depth是1,第2層節(jié)點的depth是2,類推)

sb.append(xml.getName()+"(depth:"+xml.getDepth()" ");

//獲得當(dāng)前標(biāo)簽的屬性個數(shù)

int count=xml.getAttributeCount();

//將所有屬性的名稱和屬性值添加到StringBuffer對象中

for(int i=0;icount;i++)

{

sb.append(xml.getAttributeName(i)+":

"+xml.getAttributeValue(i)+"");

}

sb.append(")\n");

}

//標(biāo)簽結(jié)束狀態(tài)

else if(eventType ==XmlPullParser.END_TAG)

{

Log.d("end_tag",xml.getName());

}

//讀取標(biāo)簽內(nèi)容狀態(tài)

else if(eventType ==XmlPullParser.TEXT)

{

Log.d("text","text");

}

//文檔結(jié)束狀態(tài)

else if(eventType ==XmlPullParser.END_DOCUMENT)

{

Log.d("end_document","end_document");

//文檔分析結(jié)束后,退出while循環(huán)

break;

}

//切換到下一個狀態(tài),并獲得當(dāng)前狀態(tài)的類型

eventType =xml.next();

}

textView.setText(sb.toString());

}

catch(Exception e) {}

}

二、如果想讀入文件

在使用getAssets().open("anhui.xml")返回輸人流之后,就可以以此為參數(shù),后面的處理跟普通的java的處理相同。

android 如何讀取數(shù)據(jù)庫中的圖片

從數(shù)據(jù)庫讀取二進(jìn)制文件

然后從二進(jìn)制讀取的圖片信息:

byte[] picData = cursor.getBlob(cursor.getColumnIndex("pic_data"));

bitmap.setImageBitmap(BitmapFactory.decodeByteArray(picData, 0, picData.length));

Android 使用系統(tǒng)相機(jī)拍照和讀取相冊照片

1.拍照 (對于7.0以上的版本,不在允許直接訪問uri)

`

若不指定輸出路徑intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri(srcActivity)); 在onActivityResult()中,通過

`

可以拿到uri,但獲得的圖片是被壓縮過的。若指定intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);輸出路徑,則此處的intent為null,但可以使用我們存的uri讀取照片,此時的照片沒有被壓縮。

2.從相冊中讀取照片, 方法:

`

`

即使設(shè)置 intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri(srcActivity));輸出路徑,仍然不能從此路徑中讀取,只能在onActivityForResult()中通過event.uri = intent.getData();方式獲得圖片uri。

此種現(xiàn)象也好理解,拍照時產(chǎn)生新的圖片,自然可根據(jù)設(shè)置的uri進(jìn)行圖片保存,而讀取相冊時,圖片已經(jīng)在目錄中不能轉(zhuǎn)移到自己設(shè)定的uri中。

Androidmanifest.xml中

`

在 res/xml/provider_paths.xml

`

?xml version="1.0" encoding="utf-8"?

paths

external-path name="JDTobs" path=""/

files-path name="name" path="path" /

cache-path name="name" path="path" / external-path name="name" path="path" /

external-files-path name="name" path="path" /

external-cache-path name="name" path="path" / /paths `

讀取uri

android中如何從SDcard中讀取圖片文件

用路徑的方法尋找,BitmapFactory.decodeFile(路徑)返回值是一個Bitmap,比如sdcard的根目錄有個test.png,那么可以這么用BitmapFactory.decodeFile("mnt/sdcard/test.png")。然后ImageView之類的圖片控件,可以用setImageBitmap(Bitmap)之類的方法,就可以使用sdcard中的圖片了,

不過好像需要加一個權(quán)限的,就是在androidmanifest.xml中添加。

你說的讀取系統(tǒng)一個小圖標(biāo)R.drawable.ic_menu_camera,其實也是用路徑尋找的,不過被google封裝起來了,用映射的方法尋找到相關(guān)路徑下的文件。 比如R.drawable 就知道是res下面drawable-XX(根據(jù)系統(tǒng)配置,尋找不同文件夾下的圖片)文件下的圖片,比如R.layout 就是res下面layout下面的文件。SimpleAdapter可以算是一個測試用的設(shè)配器,最好自己嘗試寫設(shè)配器,自由空間比較大。

android如何讀取圖片

使用android-support-v4.jar中的加載器(Loader)來實現(xiàn)獲取本機(jī)中所有圖片,關(guān)于這個包在以前的文章中也提到,是一個非常有用的包,關(guān)于這個包的詳細(xì)信息請大家查看官方文檔:。

關(guān)于加載器(Loader)是在Android3.0中才開始引進(jìn)并使用的,Android3.0以前的版本中要想使用加載器則需要用android-support-v4.jar來實現(xiàn),我這個示例是基于Android2.2的。加載器(Loader)有什么作用呢?官方文檔介紹是:它能夠使用得在activity或fragment中異步加載數(shù)據(jù)變得更加容易,它具有以下的特點:

1.它們對每一個Activity和Fragment都是有效的。

2.它們提供了一種異步加載數(shù)據(jù)的能力。

3.它們監(jiān)視數(shù)據(jù)源并且數(shù)據(jù)內(nèi)容改變時將會傳遞新的結(jié)果。

4.當(dāng)配置改變而被重新創(chuàng)建時,它們自動的會重連到上一個加載器的游標(biāo),然而,它們不需要重新查詢數(shù)據(jù)。

android如何讀取sd卡的圖片并顯示

首先你要在AndroidManifest.xml申請讀取sdcard的權(quán)限

uses-permission?android:name="android.permission.WRITE_EXTERNAL_STORAGE"?/?!--?向SDCard寫入數(shù)據(jù)權(quán)限?--

關(guān)鍵代碼:

package?com.sdcardread;??

import?java.io.File;??

import?android.os.Bundle;??

import?android.os.Environment;??

import?android.widget.ImageView;??

import?android.widget.LinearLayout;??

import?android.widget.TextView;??

import?android.app.Activity;??

import?android.graphics.Bitmap;??

import?android.graphics.BitmapFactory;??

public?class?MainActivity?extends?Activity?{??

private?TextView?textView1;??

private?LinearLayout?linearLayout1;??

@Override??

protected?void?onCreate(Bundle?savedInstanceState)?{??

super.onCreate(savedInstanceState);??

setContentView(R.layout.activity_main);??

textView1?=?(TextView)?findViewById(R.id.textView1);??

linearLayout1?=?(LinearLayout)?findViewById(R.id.linearLayout1);??

boolean?isSdCardExist?=?Environment.getExternalStorageState().equals(??

Environment.MEDIA_MOUNTED);//?判斷sdcard是否存在??

if?(isSdCardExist)?{??

String?sdpath?=?Environment.getExternalStorageDirectory()??

.getAbsolutePath();//?獲取sdcard的根路徑??

textView1.setText("sd卡是存在的。以下是sdcard下的img25.jpg!");??

String?filepath?=?sdpath?+?File.separator?+?"img25.jpg";??

File?file?=?new?File(filepath);??

ImageView?imageView?=?new?ImageView(this);//創(chuàng)建一個imageView對象??

if?(file.exists())?{??

Bitmap?bm?=?BitmapFactory.decodeFile(filepath);??

//?將圖片顯示到ImageView中??

imageView.setImageBitmap(bm);??

linearLayout1.addView(imageView);??

}??

}?else?{??

textView1.setText("sd卡不存在!");??

}??

}??

}


網(wǎng)站標(biāo)題:android讀取圖片,android獲取圖片uri
網(wǎng)站地址:http://weahome.cn/article/dsdscjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部