在Android中,处理大图的ImageView有以下几种常见方法:
BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeResource(getResources(), R.drawable.large_image, options); options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); options.inJustDecodeBounds = false; Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.large_image, options); private int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { final int height = options.outHeight; final int width = options.outWidth; int inSampleSize = 1; if (height > reqHeight || width > reqWidth) { final int halfHeight = height / 2; final int halfWidth = width / 2; while ((halfHeight / inSampleSize) >= reqHeight && (halfWidth / inSampleSize) >= reqWidth) { inSampleSize *= 2; } } return inSampleSize; }  使用Picasso加载图片:
Picasso.with(context) .load(R.drawable.large_image) .resize(100, 100) .centerCrop() .into(imageView);  使用Glide加载图片:
Glide.with(context) .load(R.drawable.large_image) .override(100, 100) .into(imageView);  public class ScalableImageView extends ImageView { public ScalableImageView(Context context) { super(context); } public ScalableImageView(Context context, AttributeSet attrs) { super(context, attrs); } public ScalableImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Drawable drawable = getDrawable(); if (drawable != null) { int width = MeasureSpec.getSize(widthMeasureSpec); int height = width * drawable.getIntrinsicHeight() / drawable.getIntrinsicWidth(); setMeasuredDimension(width, height); } else { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } }  以上是处理大图的几种常见方法,开发者可以根据具体需求选择合适的方法来处理大图的ImageView。