如何将URL转换为URI?

时间:2011-07-28 19:19:10

标签: android

我正在尝试使用此代码缓存这些图片...

但我一直在这里遇到语法错误?

 Uri imageUri = new Uri(aURL);

以下是我正在使用的代码。

                                URL aURL = new URL(myRemoteImages[position]);



                                Uri imageUri = new Uri(aURL);
                                if (new File(new File(myContext.getCacheDir(), "thumbnails"), "" + imageUri.hashCode()).exists())
                                {
                                    String cachFile = ""+imageUri.hashCode();
                                    FileInputStream fis;

                                    try {
                                        fis = new FileInputStream(cachFile);
                                        Bitmap bm = BitmapFactory.decodeStream(fis); 
                                         i.setImageBitmap(bm);
                                            i.setScaleType(ImageView.ScaleType.FIT_CENTER);
                                            /* Set the Width/Height of the ImageView. */
                                            if(Build.VERSION.SDK_INT >= 11){
                                                i.setLayoutParams(new Gallery.LayoutParams(450, 300));
                                            }
                                            else{
                                                i.setLayoutParams(new Gallery.LayoutParams(125, 125));
                                            }


                                    } catch (FileNotFoundException e) {

                                           Log.e("DEBUGTAG", "Remtoe Image Exception", e);





                                            /* Image should be scaled as width/height are set. */
                                            i.setScaleType(ImageView.ScaleType.FIT_CENTER);
                                            /* Set the Width/Height of the ImageView. */
                                            if(Build.VERSION.SDK_INT >= 11){
                                                i.setLayoutParams(new Gallery.LayoutParams(450, 300));

                                            return i;
                                            }
                                                i.setLayoutParams(new Gallery.LayoutParams(125, 125));
                                                return i;
                                            }

4 个答案:

答案 0 :(得分:4)

阅读docs.您无法使用网址创建URI。使用像

这样的东西
URI uri = new URI(aURL.toString());

抓住任何必要的例外情况。

答案 1 :(得分:0)

http://developer.android.com/reference/java/net/URL.html#toURI()

请参阅此方法。它可能对你有用

答案 2 :(得分:0)

请参阅此内容。

http://developer.android.com/reference/android/net/Uri.html#fromFile(java.io.File)

据我了解,您正试图获取从远程位置获取的URL的Uri。 Uri很可能不会存在于设备上。只要确保你想要实现的目标。

答案 3 :(得分:0)