我一直在寻找一种方法来实现这一目标,或者寻找可以实现预期结果的任何方法。
我要实现的是使用滑行方式加载图像,然后再次在不同的Image View中使用它,而无需再次从服务器上下载它(下载会是更简单的方法,但是加载图像会花费更多时间)。 / p>
这是相关代码:
Glide.with(getActivity())
.load(getdetails.getRestlogo())
.into(holder.ivlistrv);
holder.ivlistrv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View dialogView = inflater.inflate(R.layout.custom_alertlist_frag, null);
dialogBuilder.setView(dialogView);
ImageView alertiv = (ImageView) dialogView.findViewById(R.id.alertiv);
final RatingBar alertrb = (RatingBar) dialogView.findViewById(R.id.alertrb);
final TextView alerttv = (TextView) dialogView.findViewById(R.id.alerttv);
//alertiv.set the image from ivlistrv
alerttv.setText("Rate "+title);
alertrb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
AlertDialog alertDialog = dialogBuilder.create();
alertDialog.show();
}
});
答案 0 :(得分:1)
使用.diskCacheStrategy(DiskCacheStrategy.ALL)
这将缓存您的图像,下次将其从缓存中加载
Glide.with(getActivity())
.load(getdetails.getRestlogo())
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.ivlistrv);
答案 1 :(得分:0)
将地图用于其他ImageView。从mainActivity调用asyncTask类。我已经测试了这段代码,它对我有用
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
iv1 = (ImageView) findViewById(R.id.imageView);
iv2 = (ImageView) findViewById(R.id.imageView2);
new MyAsyncTask().execute("https://c.tribune.com.pk/2018/07/1759720-jinnahmazarkarachichangeofguardreutersxx-1531808403.jpg");
}
下载图像 AsyncTask 类,然后将其存储在Bitmap类变量中,该变量将保存在该变量中,供您随时随地使用。
public class MyAsyncTask extends AsyncTask<String,Void,Bitmap>{
Bitmap map;
@Override
protected Bitmap doInBackground(String... strings) {
try {
file = Glide.with(Main2Activity.this)
.load(strings[0])
.downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.get();
map = BitmapFactory.decodeFile(file.getAbsolutePath());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return map;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
iv1.setImageBitmap(bitmap);
iv2.setImageBitmap(bitmap);
}
}