2016-06-02 2 views
1

이미지를 먼저 다운로드하여 캐시에 저장하려면 어떻게해야하며 다른 사람이 버튼을 누르면 이미지가 곧바로 표시됩니다.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> 

답변