ビットマップが大きすぎてテクスチャ4096×4096ソリューションにアップロードできません



Bitmap Too Large Be Uploaded Into Texture 4096 4096 Solution

おそらくこのエラー、全体像のディスプレイに連絡した開発者は基本的に次のことに遭遇しました。

1、Android Studioに導入され、依存関係を追加します。



compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.6.0'

2.対応するレイアウトファイルで、通常のImageViewを置き換えます。

SubsamplingScaleImageView imageView = (SubsamplingScaleImageView)findViewById(id.imageView) imageView.setImage(ImageSource.resource(R.drawable.monkey)) // ... or ... imageView.setImage(ImageSource.asset('map.png')) // ... or ... imageView.setImage(ImageSource.uri('/sdcard/DCIM/DSCM00123.JPG')) // bitmap is fine, but the author does not recommend this because it may cause OOM. SubsamplingScaleImageView imageView = (SubsamplingScaleImageView)findViewById(id.imageView) imageView.setImage(ImageSource.bitmap(bitmap))

3、これでアクティビティまたはフラグメントに画像をロードできます。



imageView. setDoubleTapZoomDuration(200)// The unit is ms

4、一般的に使用される属性:
a。次をダブルクリックして、アニメーションの長さを設定します。

imageView.setOrientation(ORIENTATION_USE_EXIF)// Automatically rotate according to EXIF ​​information imageView.setOrientation(ORIENTATION_0)// does not rotate imageView.setOrientation(ORIENTATION_90)// Rotate 90 degrees clockwise imageView.setOrientation(ORIENTATION_180)// Rotate 180 degrees clockwise imageView.setOrientation(ORIENTATION_270)// Rotate 270 degrees clockwise

b。自動的に回転するか、回転を指定するかを設定します。

SubsamplingScaleImageView image = (SubsamplingScaleImageView) findViewById(R.id.image) image.setDoubleTapZoomDuration(200)// The unit is ms image.setOrientation(ORIENTATION_USE_EXIF)// Automatically rotate according to EXIF ​​information Glide.with(activity) .load(path) .downloadOnly(new ViewTarget(image) { @Override public void onResourceReady(File resource, GlideAnimation glideAnimation) { image.setImage(ImageSource.uri(Uri.fromFile(resource))) } })

c。より多くのプロパティは、作者によって書かれたwikiを読むために行くことができます: https://github.com/davemorrissey/subsampling-scale-image-view/wiki/07.-構成



5、それがネットワーク画像である場合、あなたはこれを行うことができます:

グライド:推奨

SubsamplingScaleImageView image = (SubsamplingScaleImageView) findViewById(R.id.image) image.setDoubleTapZoomDuration(200)// The unit is ms image.setOrientation(ORIENTATION_USE_EXIF)// Automatically rotate according to EXIF ​​information Picasso.with(activity) .load(path) .into(new com.squareup.picasso.Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom loadedFrom) { image.setImage(ImageSource.bitmap(bitmap)) } @Override public void onBitmapFailed(Drawable drawable) { } @Override public void onPrepareLoad(Drawable drawable) { } })

gildeのdownloadOnlyモードを使用し、最初にローカルにダウンロードしてから、SubsamplingScaleImageViewのsetImageメソッドを使用して、画像を最も効率的に表示する必要があります。

ピカソ:ビットマップがロードされているため、ピカソはお勧めしません。

|_+_|