我的應用程序有一個部分,其中一些圖像顯示在gridview中。獲取SD卡上的位圖ID
GridView的建立之前,下面做:圖像文件名的
- 下載列表從互聯網
- 比較這個名單的項目已經存在於可繪製文件夾
- 如果圖像不存在於Drawable文件夾中,將其下載並保存到SD卡中。
當使用可繪製的ID,這很容易得到,因爲他們是在一個資源文件夾(「繪製」)設立的GridView我做到這一點。
但是,如果我需要包含SD卡圖像以及在gridview中,我該如何檢索他們的ID?
我的應用程序有一個部分,其中一些圖像顯示在gridview中。獲取SD卡上的位圖ID
GridView的建立之前,下面做:圖像文件名的
當使用可繪製的ID,這很容易得到,因爲他們是在一個資源文件夾(「繪製」)設立的GridView我做到這一點。
但是,如果我需要包含SD卡圖像以及在gridview中,我該如何檢索他們的ID?
我有一個代碼從sdcard獲取圖像並將它們轉換爲一個URI數組,這個id就像URI一樣使用它們。
private void getData() {
File f = new File("/mnt/sdcard/");
File[] imagelist = f.listFiles(new FilenameFilter(){
public boolean accept(File dir, String name)
{
return ((name.endsWith(".jpg"))||(name.endsWith(".png")));
}
});
mFiles = new String[imagelist.length];
for(int i= 0 ; i< imagelist.length; i++)
{
mFiles[i] = imagelist[i].getAbsolutePath();
}
mUrls = new Uri[mFiles.length];
for(int i=0; i < mFiles.length; i++)
{
mUrls[i] = Uri.parse(mFiles[i]);
}
}
您可以使用URI是這樣的: -
ImageView imageView=new ImageView(this);
imageView.setImageURI(mUrls[i]);
除應用程序隨附的文件(例如,下載到內部或外部存儲器)以外的文件都沒有資源ID。
資源ID是引用打包資源(如字符串,圖像等)的簡寫方式。這些id在構建時創建,只對內部資源有意義。
爲了使用從外部來源獲取的圖像,您可以通過文件名訪問它們,並且我認爲,您將創建ImageViews
並將其添加到GridView
。
如果您需要辨別網格的不同圖像(可能是爲了觸摸/點擊目的),那麼您要處理的是ImageView
,而不是關心它們包含的圖像的資源ID或文件名。
很好的解釋,謝謝。 – eightx2 2012-02-13 17:35:35
我忘了添加擾流板警告。無論如何,如果你願意,你可以使用文件名字符串,我喜歡URI的方式。而且你可以將已經存在的圖像ID轉換成你的可繪製文件夾,也可以轉換成URI。 – noob 2012-02-12 21:56:59
謝謝,我將能夠使用此代碼:) – eightx2 2012-02-13 17:35:04