在Android开发中,如果你知道图片的URL,可以通过以下步骤获取图片大小:
下面是一个示例代码:
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);
}
}
使用示例:
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);
这样,通过异步任务的方式,你可以在获取到图片大小后进行相应的处理。请注意,这只是获取图片大小的一种方法,实际开发中还可以根据具体需求选择其他适合的方法。
领取专属 10元无门槛券
手把手带您无忧上云