相关疑难解决方法(0)

我可以从URL加载UIImage吗?

我有一个图像的URL(从UIImagePickerController获取)但我不再拥有内存中的图像(该URL是从以前的应用程序运行中保存的).我可以再次从URL重新加载UIImage吗?

我看到UIImage有一个imageWithContentsOfFile:但我有一个URL.我可以使用NSData的dataWithContentsOfURL:来读取URL吗?

EDIT1


根据@ Daniel的回答,我尝试了以下代码,但它不起作用......

NSLog(@"%s %@", __PRETTY_FUNCTION__, photoURL);     
if (photoURL) {
    NSURL* aURL = [NSURL URLWithString:photoURL];
    NSData* data = [[NSData alloc] initWithContentsOfURL:aURL];
    self.photoImage = [UIImage imageWithData:data];
    [data release];
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时控制台显示:

-[PhotoBox willMoveToWindow:] file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG
*** -[NSURL length]: unrecognized selector sent to instance 0x536fbe0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL length]: unrecognized selector sent to instance 0x536fbe0'
Run Code Online (Sandbox Code Playgroud)

查看调用堆栈,我调用URLWithString,调用URLWithString:relativeToURL:,然后是initWithString:relativeToURL:,然后是_CFStringIsLegalURLString,然后是CFStringGetLength,然后是forwarding_prep_0,然后转发,然后调用 - [NSObject doesNotRecognizeSelector].

我的NSString(photoURL的地址是0x536fbe0)没有响应长度的任何想法?为什么它说它没有响应 - [NSURL长度]?难道不知道param是NSString,而不是NSURL吗?

EDIT2


好的,代码的唯一问题是字符串到URL的转换.如果我硬编码字符串,其他一切工作正常.所以我的NSString有问题,如果我无法弄清楚,我想这应该是一个不同的问题.插入此行(我从上面的控制台日志粘贴路径),它工作正常:

photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";
Run Code Online (Sandbox Code Playgroud)

iphone uiimagepickercontroller uiimage ios

131
推荐指数
6
解决办法
16万
查看次数

Android Studio失败添加libs Universal Image Loader

Android-Universal-Image-Loader(https://github.com/nostra13/Android-Universal-Image-Loader)是我最喜欢的图书馆.

但是当我使用Android Studio(使用0.1.5版本)时它无法添加库.

我知道如何在Android Studio中添加库(/sf/answers/1163994751/)

当我将Android-Universal-Image-Loader库添加到Android Studio时.关于"无法重新获得R"的编辑错误.我尝试这个Max OSX(我尝试Windows但失败.Windows错误消息=>"Gradle:错误:包com.nostra13.universalimageloader.core不存在".但编辑没有错误消息.仅在我运行应用程序时显示)

像Gson这样的其他libs没问题.但只有Android-Universal-Image-Loader才有这个问题.

您的Android Studio成功添加An​​droid-Universal-Image-Loader?如果成功告诉我如何.

android universal-image-loader android-studio

10
推荐指数
2
解决办法
1万
查看次数

我应该错开大量的图像加载调用吗?

我有一个带有~100个大图像的ListView.每幅图像约为640.640 jpg,显示为1/2屏幕尺寸.典型的画廊.

我目前正在使用精彩的universal-image-loader-1.9.2加载图像.

ParseFile photoFile = p.getParseFile("imageFile");
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage( photoFile.getUrl(), theImageView );
Run Code Online (Sandbox Code Playgroud)

现在,当你加载时,你会在ListView上得到一些口吃.

现在,巧合的是,我把手机放在一个非常慢的WiFi网络上.事实上,它是光滑的.

起初,我无法解决为什么突然改善!情缘!

事实上,在那种情况下:是否值得错开加载图像的调用?

因此,我可以在每次通话之间留下0.1".

或者,如果我只是这样做,可能会跟随另一个吗?!

这有什么交易?所有的android工程师都会这么做吗? 干杯!

我已经应用了所有其他经典技术,我已经google了黄油光滑的ListView滚动.干杯

(请注意,我已经尝试了许多系统来加载图像,但没有什么区别,这不是通用图像加载器的问题.


ashishduh,这是来自getView的代码......如你所见,它是微不足道的.

(注意 - 设置大小没有区别.如果我尝试用500.500固定,它是相同的)

...
v.someTextView.setText(blah);
v.someTextView.setText(blah);

// and now the big image
if (p.containsKey("imageFile"))
    {
    // this cell has a big image

    v.mainImage.setVisibility(View.VISIBLE);
    ParseFile photoFile = p.getParseFile("imageFile");

    // ...using p.getNumber("imageWidth").floatValue(); and height
    // from the cloud, calculate needed width/height on the phone...

    v.mainImage.getLayoutParams().width = Math.round(desiredGlassWidth);
    v.mainImage.getLayoutParams().height = Math.round(desiredGlassHeight);

    ImageLoader imageLoader = ImageLoader.getInstance(); …
Run Code Online (Sandbox Code Playgroud)

android listview android-imageview

0
推荐指数
1
解决办法
520
查看次数