Ich habe die Glide-Bibliothek verwendet, um ein Bild in imageView zu laden, und ich weiß nicht, wie ich das Bild zoombar machen kann
Diese Bibliothek heißt hier PhotoView
ist ziemlich beliebt.
https://github.com/chrisbanes/PhotoView
Mit mehr als 13.500 Sternen, mehr als 30 Mitwirkenden, so vielen Menschen, die es verwenden, und wie einfach es in ein Projekt zu integrieren ist, fühlt es sich fast wie ein Standard an.
Es ist auch mit Glide
kompatibel ^.^
Installation (Offizielle Dokumentation von Chrisbanes)
Fügen Sie dies in Ihrem Stamm build.gradle
hinzu Datei (nicht Ihr Modul build.gradle
Datei):
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
Fügen Sie dann die Bibliothek zu Ihrem Modul build.gradle
hinzu
dependencies {
implementation 'com.github.chrisbanes:PhotoView:latest.release.here'
}
Zum Zeitpunkt des Schreibens latest.release.here
ist 2.1.4
.
Verwendung (Offizielle Dokumentation von Chrisbanes)
Es gibt ein Beispiel, das zeigt, wie man die Bibliothek auf fortgeschrittenere Weise verwendet, aber der Vollständigkeit halber ist hier alles, was erforderlich ist, um PhotoView zum Laufen zu bringen:
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/photo_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
PhotoView photoView = (PhotoView) findViewById(R.id.photo_view);
photoView.setImageResource(R.drawable.image);
Das ist es!
Verwendung mit Glide
Es ändert sich nichts!!
PhotoView photoView = (PhotoView) findViewById(R.id.photo_view);
Glide.with(this).load(imageUrl).into(photoView);
Sie können zum Beispiel diese Bibliothek verwenden.https://github.com/MikeOrtiz/TouchImageView
Laden Sie Ihr Bild in dieses Widget anstelle von ImageView
Beispielnutzung:
private TouchImageView mContentView;
private private SimpleTarget target;
mContentView = (TouchImageView) findViewById(R.id.fullscreen_content);
target = new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation)
{
// do something with the bitmap
// for demonstration purposes, let's just set it to an ImageView
mContentView.setImageBitmap(bitmap);
}
};
Glide.with(this) // could be an issue!
.load( imagePath )
.asBitmap()
.into(target);
Beachten Sie, dass ich auch zuerst SimpleTarget verwende, es ist eine gute Übung, Glide and Pinch to Zoom Effect für große Bilder zu verwenden.
Und das Layout sieht in etwa so aus:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.FullscreenActivity">
<com.yourPath.TouchImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fullscreen_content"/>
</FrameLayout>
Außerdem gibt es manchmal ein Problem beim Laden des Bildes nach diesem Setup. Bei mir funktioniert das ungefähr so. Ich überschreibe die Methode der TouchImageView-Klasse:
@Override
public void setImageBitmap(Bitmap bm) {
imageRenderedAtLeastOnce = false;
super.setImageBitmap(bm);
savePreviousImageValues();
fitImageToView();
}