计算从网络上请求图片的大小(宽高)

本文介绍了一种在Android应用中加载网络图片的方法,确保图片在不同尺寸的屏幕上正确显示而不会发生拉伸变形。通过获取图片的实际尺寸来调整显示大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常在开发Android显示网络图片时,通常会遇到因手机屏幕大小的不同,显示图片变形的问题。所以我们在显示图片时通过获取图片的大小,再计算出控件应该显示的大小,这样图片显示不会出现拉伸的问题。以下就是怎样获取网络图片大小的方法,希望能帮助大家!

 

// 定义一个网页图片的路径

String url = ”http://www.kksdapp.com/data/upload/552730a23a335.jpg“;

 

// 根据图片地址获取图片输出流方法

// 注:使用该方法时要在异步类中调用该方法

public static InputStream getInputStream(Context context, String path){

     InputStream inputStream = null;
     HttpURLConnection httpURLConnection = null;
     String bitmapUrl = null;
     bitmapUrl = path;
     try {
           URL url = new URL(bitmapUrl);
           if(!StringUtil.isNull(url.toString())){
                 httpURLConnection = (HttpURLConnection) url.openConnection();
                 // 设置连接网络的超时时间
                 httpURLConnection.setConnectTimeout(5000);
                 // 打开输入流
                 httpURLConnection.setDoInput(true);
                 // 设置本次Http请求使用的方法
                 httpURLConnection.setRequestMethod("GET");
                 if (200 == httpURLConnection.getResponseCode()){
                         // 从服务器获得一个输入流
                        inputStream = httpURLConnection.getInputStream();
                 }else{
                        Log.v("inputStream", url+"_链接失败");
                 }
          }
      } catch (Exception e) {
          Log.w("url", e.toString());
          e.printStackTrace();
      }
      return inputStream;
 }

 

// 页面启动异步类调用上面的方法,并将获得的图片输出流转化成bitmap格式,再获取图片的大小

 public static Integer[] getIntentPicSize(final Context context, final String url){
       final Integer[] size = new Integer[2];
       new AsyncTask<Void, Void, Bitmap>() {
           @Override
           protected Bitmap doInBackground(Void... params) {
           System.out.println("url : " + url);
           InputStream is = DownloadBitmap.getInputStream(context, url);
           if (is != null) {
               return BitmapFactory.decodeStream(is);
           } else {
               eturn null;
           }
       }
      @Override
      protected void onPostExecute(Bitmap bitmap) {
            if (bitmap == null) {
                bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.member_home_bg);
            }
           size[0] = bitmap.getWidth();
           size[1] = bitmap.getHeight();
           System.out.println("bitmap.getWidth() : " + bitmap.getWidth());
           System.out.println("bitmap.getHeight() : " + bitmap.getHeight());
           super.onPostExecute(bitmap);
       }
    }.execute();
       return size;
 }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值