首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我知道图片的URL,如何获取图片大小?Android (java)

在Android开发中,如果你知道图片的URL,可以通过以下步骤获取图片大小:

  1. 使用Java中的HttpURLConnection或者OkHttp等网络库,根据图片的URL发送HTTP请求,获取图片的字节流数据。
  2. 将获取到的字节流数据转换为Bitmap对象,可以使用BitmapFactory类的decodeStream()方法。
  3. 通过Bitmap对象的getWidth()和getHeight()方法,即可获取到图片的宽度和高度。

下面是一个示例代码:

代码语言:txt
复制
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class ImageSizeFetcher extends AsyncTask<String, Void, Integer[]> {

    private OnImageSizeFetchedListener listener;

    public ImageSizeFetcher(OnImageSizeFetchedListener listener) {
        this.listener = listener;
    }

    @Override
    protected Integer[] doInBackground(String... urls) {
        String imageUrl = urls[0];
        Integer[] imageSize = new Integer[2];
        try {
            URL url = new URL(imageUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            Bitmap bitmap = BitmapFactory.decodeStream(input);
            imageSize[0] = bitmap.getWidth();
            imageSize[1] = bitmap.getHeight();
            bitmap.recycle();
            input.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return imageSize;
    }

    @Override
    protected void onPostExecute(Integer[] imageSize) {
        if (listener != null) {
            listener.onImageSizeFetched(imageSize[0], imageSize[1]);
        }
    }

    public interface OnImageSizeFetchedListener {
        void onImageSizeFetched(int width, int height);
    }
}

使用示例:

代码语言:txt
复制
String imageUrl = "https://example.com/image.jpg";
ImageSizeFetcher imageSizeFetcher = new ImageSizeFetcher(new ImageSizeFetcher.OnImageSizeFetchedListener() {
    @Override
    public void onImageSizeFetched(int width, int height) {
        // 在这里处理获取到的图片宽度和高度
        // width为图片宽度,height为图片高度
    }
});
imageSizeFetcher.execute(imageUrl);

这样,通过异步任务的方式,你可以在获取到图片大小后进行相应的处理。请注意,这只是获取图片大小的一种方法,实际开发中还可以根据具体需求选择其他适合的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券