我對畢加索不太熟悉,但我的應用程序使用它來從其URL中加載圖像。
但是我想製作一個按鈕,當它被點擊時,它會將圖像標記爲收藏夾,即使在脫機狀態下也會顯示它。
我正在用Content Provider保存其他東西(字符串,雙打)。
所以,我認爲最好的方法是保存圖像以顯示即使離線。
但是,如何保存它們?如何使用畢加索保存和顯示圖像
0
A
回答
0
下載帶有網址的圖片還有一個不錯的選擇。試試這個代碼。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new DownloadFile().execute("https://i.stack.imgur.com/w4kCo.jpg");
}
class DownloadFile extends AsyncTask<String,Integer,Long> {
ProgressDialog mProgressDialog = new ProgressDialog(MainActivity.this);// Change Mainactivity.this with your activity name.
String strFolderName;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog.setMessage("Downloading Image ...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.setMax(100);
mProgressDialog.setCancelable(false);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.show();
}
@Override
protected Long doInBackground(String... aurl) {
int count;
try {
URL url = new URL((String) aurl[0]);
URLConnection conexion = url.openConnection();
conexion.connect();
String targetFileName="downloadedimage.jpg";//Change name and subname
int lenghtOfFile = conexion.getContentLength();
String PATH = Environment.getExternalStorageDirectory()+"/myImage/";
File folder = new File(PATH);
if(!folder.exists()){
folder.mkdir();//If there is no folder it will be created.
}
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(PATH+targetFileName);
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
publishProgress ((int)(total*100/lenghtOfFile));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {}
return null;
}
protected void onProgressUpdate(Integer... progress) {
mProgressDialog.setProgress(progress[0]);
if(mProgressDialog.getProgress()==mProgressDialog.getMax()){
mProgressDialog.dismiss();
Toast.makeText(getApplicationContext(), "Download Completed !", Toast.LENGTH_LONG).show();
}
}
protected void onPostExecute(String result) {
}
}
並將下載的圖像位圖設置爲Imageview。
0
這是代碼。通過這種策略,畢加索將在緩存中查找圖像,如果失敗,則圖像將通過網絡下載。
Picasso.with(context)
.load(Uri.parse(getItem(position).getStoryBigThumbUrl()))
.networkPolicy(NetworkPolicy.OFFLINE)
.into(holder.storyBigThumb, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
// Try again online if cache failed
Picasso.with(context)
.load(Uri.parse(getItem(position)
.getStoryBigThumbUrl()))
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(holder.storyBigThumb);
}
});
畢加索有自己的緩存你不會需要自己處理任何東西。
相關問題
- 1. 畢加索圖像緩存
- 2. 保存圖像在SD卡後畢加索加載圖像
- 3. 使用畢加索時,我還需要保存圖像嗎?
- 4. 畢加索圖書館是否將圖像保存到緩存?
- 5. 如何顯示)popBackStack(後載有畢加索圖像
- 6. 畢加索 - 當圖像保存到磁盤時顯示吐司/消息
- 7. 使用畢加索和回收站視圖來顯示圖像列表
- 8. 將圖像從畢加索保存到內存
- 9. 畢加索圖書館和GridView圖像
- 10. 畢加索爲什麼不保存圖像緩存供脫機使用?
- 11. 如何使用畢加索
- 12. 如何使用畢加索
- 13. 加載畢加索的圖像並不總是顯示
- 14. 畢加索重複圖像
- 15. 如何從畢加索在位圖變量中存儲圖像
- 16. 使用畢加索加載圖像時保持圖像的縱橫比?
- 17. 畢加索和圖像大小
- 18. 畢加索圖像加載以前緩存圖像
- 19. 畢加索和Firebase存儲
- 20. 如何顯示,而無需使用Android的畢加索
- 21. 畢加索在appwidget中使用緩存圖像的數據
- 22. 畢加索不會顯示imgur的圖像
- 23. 圖像沒有顯示在畢加索,因爲gridview
- 24. 與OKHttp不顯示圖像的畢加索:日誌錯誤
- 25. Android的顯示圖像的GridView從URL與畢加索
- 26. 畢加索不顯示圖像的自定義鏈接Android
- 27. 如何使用畢加索從mp3文件設置圖像
- 28. 如何存儲由畢加索在android下載的圖像?
- 29. 圖片不顯示使用畢加索在android
- 30. 用畢加索覆蓋圖像