이미지를 먼저 다운로드하여 캐시에 저장하려면 어떻게해야하며 다른 사람이 버튼을 누르면 이미지가 곧바로 표시됩니다.Android 이미지 (글라이드)를로드하고 다른 사람이 버튼을 클릭했을 때 어떻게 표시 할 수 있습니까? 직접
왜? 매번 버튼을 클릭 할 때마다 인터넷에서로드되기 때문에 몇 초 지연됩니다. 시간이 걸리므로 먼저로드하고 캐시해야합니다. 누군가가 버튼을 클릭하면 1 초 만에 직접 표시됩니다.
자바 : 나는 1 초 지연 누군가가 버튼을 클릭 할 때마다 원하기 때문에
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() {
1000 MS의 지연 보지 말라, 그것은 중요하지 않습니다. 로딩하는 것처럼 보이게하기 위해 지연을했는데 좋지 않습니다 ... 때로는 이미지가로드 될 때까지 5 초 정도 기다려야합니다.
@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>
구현하면 이미지가 1 초 만에로드됩니까? –
예. – thushcapone