Я сохраняю изображения в кэш, а затем извлекаю их.
Я сохраняю некоторые строки URL-адресов в SharedPreferences, а затем извлекаю их после выполнения действия Create ().
Проблемаэто когда я запускаю этот метод ..
public void getImagesfromCache(){
ImageAdapter adapter = new ImageAdapter();
String[] cachImages = myRemoteImages; //I set the CacheImages String[] here
try {
URL aURL2 = null;
aURL2 = new URL(cachImages[position]); //I get a MalformedURLException here
URI imageCacheUri = null;
try {
imageCacheUri = aURL2.toURI();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(new File(new File(this.getApplicationContext().getCacheDir(), "thumbnails"),"" + imageCacheUri.hashCode()).exists()){
Log.v("FOUND", "Images found in cache! Now being loaded!");
String cacheFile = this.getApplicationContext().getCacheDir() +"/thumbnails/"+ imageCacheUri.hashCode();
ImageView i = new ImageView(this.getApplicationContext());
FileInputStream fis = null;
try {
fis = new FileInputStream(cacheFile);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Bitmap bm = BitmapFactory.decodeStream(fis);
i.setImageBitmap(bm);
putBitmapInDiskCache(imageCacheUri, bm);
Log.v("Loader", "Image saved to cache");
((Gallery) findViewById(R.id.gallery))
.setAdapter(new ImageAdapter(MainMenu.this));
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Когда создается действие, я устанавливаю каждый URL на его переменную из общих настроек.
SharedPreferences app_preferences =
this.getSharedPreferences("images_urls", MODE_WORLD_READABLE);
imageUrl = app_preferences.getString("URL1", "Does not exist in preference");
imageUrl2 = app_preferences.getString("URL2", "Does not exist in cache");
imageUrl3 = app_preferences.getString("URL3", "Does not exist in preference");
imageUrl4 = app_preferences.getString("URL4", "Does not exist in preference");
Log.e("Preference", imageUrl + imageUrl2 + imageUrl3 + imageUrl4);
Как вы видите, я регистрирую его, чтобы сделатьконечно, что-то тянет.Он обнаруживается в отладке со всеми URL, которые я изначально сохранил.
Я вызываю getimagesfromCache () внутри oncreate, когда строки извлекаются из SharePreferences,
Так почему я получаюmalformedURLException в этой строке?
EDIT: вот код, который я использую для удаленных изображений ....
И позиция ..
int position;
public String [] myRemoteImages = {imageUrl, imageUrl2, imageUrl3, imageUrl4};
у меня есть адаптер изображения ... Я устанавливаю положение с помощью этого внутри BaseAdapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(this.myContext);
try {
URL aURL = new URL(myRemoteImages[position]);
РЕДАКТИРОВАТЬ: Как я могуиспользовать позицию int внутри getView () из imageAdapter?или мне это нужно?