Android 使用任何图像加载库将完整图像从url加载到图像视图

Android 使用任何图像加载库将完整图像从url加载到图像视图,android,image,picasso,universal-image-loader,android-glide,Android,Image,Picasso,Universal Image Loader,Android Glide,我正在从URL下载图像,并将其显示在ImageView中。我需要下载图像的完整原始大小。我试过Glide、毕加索和Universal Image Loader,但都没有成功。有没有图书馆或方法来实现这一点?我甚至试着制作自己的AsyncTask来完成它,比如: public class ImageLoader extends AsyncTask<Void, Void, Bitmap> { @Override protected Bitmap doInBackgrou

我正在从URL下载图像,并将其显示在
ImageView
中。我需要下载图像的完整原始大小。我试过Glide、毕加索和Universal Image Loader,但都没有成功。有没有图书馆或方法来实现这一点?我甚至试着制作自己的
AsyncTask
来完成它,比如:

public class ImageLoader extends AsyncTask<Void, Void, Bitmap> {

    @Override
    protected Bitmap doInBackground(Void... params) {

        try {
            URL url = new URL(bundle.getString("selectedImage"));
            HttpURLConnection conn = 
            (HttpURLConnection)url.openConnection();
            conn.setReadTimeout(6000);
            conn.setConnectTimeout(6000);
            conn.setRequestMethod("GET");
            conn.setDoInput(true);
            conn.connect();
            int respose = conn.getResponseCode();
            InputStream is = conn.getInputStream();
            BufferedInputStream bufferedInputStream = new 
            BufferedInputStream(is);
            bitmap = BitmapFactory.decodeStream(bufferedInputStream);

            return bitmap;

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }
公共类ImageLoader扩展异步任务{
@凌驾
受保护位图doInBackground(无效…参数){
试一试{
URL=新URL(bundle.getString(“SelecteImage”);
HttpURLConnection连接=
(HttpURLConnection)url.openConnection();
连接设置读取超时(6000);
连接设置连接超时(6000);
conn.setRequestMethod(“GET”);
conn.setDoInput(真);
连接();
int respose=conn.getResponseCode();
InputStream is=conn.getInputStream();
BufferedInputStream BufferedInputStream=新建
BufferedInputStream(is);
位图=BitmapFactory.decodeStream(bufferedInputStream);
返回位图;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
但没有成功。有人能帮我什么吗?

1)试着使用截击库。


2) 使用WebView代替ImageView

我不太清楚你所说的“原始大小”是什么意思。我还没有体验过仅仅通过下载图像来自动缩放图像

也许您可以再次检查目标
ImageView
上是否有合适的
android:scaleType
。您可以在此处阅读有关scale type属性不同值的更多信息:


如果您想平移图像,比如浏览器中的“未缩放”网页(通常当图像比屏幕大时),您可能需要添加更多的逻辑来管理此操作。这可能与使用
滚动视图
包装
图像视图
一样简单(当然,这样可以包装其内容).

错误归结为照片桶给了我一个缩小的URL,而我使用了flikr,在我的设备上,我得到了一个几乎与我的原始图像相同的图像(毕加索限制为2048x2048)但在其他设备上,我似乎仍然得到一张1080 x 910的图像,我们将进一步调查,但答案似乎不是使用照片桶

您如何知道该图像没有下载到完整大小?可能正在下载,但在您尝试显示它时被裁剪了?我们不知道到底是什么问题!谢谢您的费用dback我的图像视图被包装在水平滚动视图中,水平滚动视图被包装在滚动视图中(反之亦然,我忘了)但我从URL获取图像,在某些情况下,图像大小高达1900 x 1500。图像绝对不是其完整大小,仅占图像视图的一半。使用我的保存功能,它保存图像,并在检查文件大小时,它大约为原始图像的一半,大约为1024x1024或1024x910,具体取决于图像的大小大小稍有不同可能托管服务器有一些逻辑将您的客户端检测为移动设备,因此提供较小的图像。也许您可以尝试从移动浏览器下载相同的图像,并验证下载的大小。如果服务器自动对您好,那么恐怕没什么可做的。也许可以玩一些游戏ader flags或Cookie…我刚刚使用相同的链接对其进行了广泛的检查,似乎可以为我提供正确大小的图像,但可能不是在幕后,我使用的是照片桶(充满广告)我将寻找更好的答案。不幸的是,我想我现在已经用尽了所有的想法。我希望你能尽快找到你的问题的答案:-)太好了!当问题及时得到解决时总是很酷:-)我将把创建和接受答案的手续留给你。我觉得我的贡献不超过建议非工作解决方案另外,你有关于你如何解决这个问题的具体细节。Kiermaszek我明天会尝试截击和网络视图谢谢你的建议,我会在之后发布我的努力