Wie kann ich die Bilder zuerst herunterladen und in Cach platzieren und wenn jemand Taste gedrückt, dann wird das Bild direkt ohne Verzögerung angezeigt.Wie man (Bibliothek) Glide Bilder schneller lädt? Android
Warum? Immer wenn ich auf den Knopf klicke, habe ich eine Verzögerung von ein paar Sekunden, weil sie aus dem Internet geladen werden. Es braucht Zeiten, deshalb möchte ich, dass sie zuerst geladen und zwischengespeichert werden. Wenn also jemand auf den Knopf geklickt hat, wird er in einer Sekunde angezeigt.
Java:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.squareup.picasso.Picasso;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
private int a;
ImageView ivImageFromUrl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ivImageFromUrl=(ImageView)findViewById(R.id.iv_image_from_url);
}
public void buttonOnClick(View v) {
// do something when the button is clicked
final Button button = (Button) v;
button.setEnabled(false);
Timer buttonTimer = new Timer();
buttonTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
Sie bei der Verzögerung von 1000 ms schauen nicht, es ist nicht wichtig, weil ich eine Verzögerung von 1 Sekunde wollen jedes Mal, wenn jemand auf die Schaltfläche geklickt wird. Ich habe die Verzögerung auch, um es so aussehen zu lassen, als ob sie laden, aber es ist nicht gut ... Manchmal muss ich 5 Sekunden warten, damit die Bilder geladen werden.
@Override
public void run() {
button.setEnabled(true);
}
});
}
}, 1000);
((Button) v).setText("Random image");
a = (int) (Math.random() * 4);
switch (a) {
case 0:
Glide.with(this).load("imagelink").into(ivImageFromUrl);
break;
case 1:
Glide.with(this).load("imagelink").into(ivImageFromUrl);
break;
case 2:
Glide.with(this).load("imagelink").into(ivImageFromUrl);
break;
case 3:
Glide.with(this).load("imagelink").into(ivImageFromUrl);
break;
case 4:
Glide.with(this).load("imagelink").into(ivImageFromUrl);
break;
}
}
}
XML:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/textView2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Image text"
android:id="@+id/textView"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true"
android:layout_marginTop="82dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Image"
android:id="@+id/button"
android:onClick="buttonOnClick"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:layout_marginTop="41dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv_image_from_url"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView"
android:layout_marginBottom="106dp"
android:layout_toRightOf="@+id/textView"
android:layout_toEndOf="@+id/textView" />
</RelativeLayout>
Dies funktioniert nicht, siehe mein Problem http://stackoverflow.com/questions/37964187/preload-multiple-images-with-glide?noredirect=1#comment63375623_37964187 –