我有一个从Parse.com下载图像并在图像视图中显示该图像的应用程序
问题是,每当我退出应用程序(使用后退按钮)并返回图像时,图像就会消失。
我怎样才能保持形象呢?
(例如:当您在Twitter上更新配置文件图片并离开应用程序并返回您的配置文件图片时仍然会显示)
任何帮助都是非常感谢的,这是非常重要的。
MainActivity:
public class MainActivity extends Activity {
Button button;
private ProgressDialog progressDialog;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from main.xml
setContentView(R.layout.activity_main);
// Show progress dialog
// Locate the button in main.xml
button = (Button) findViewById(R.id.button);
// Capture button clicks
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
progressDialog = ProgressDialog.show(MainActivity.this, "",
"Downloading Image...", true);
// Locate the class table named "ImageUpload" in Parse.com
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
"ImageUploads");
// Locate the objectId from the class
query.getInBackground("h3FvFzrHPr",
new GetCallback<ParseObject>() {
public void done(ParseObject object,
ParseException e) {
// TODO Auto-generated method stub
// Locate the column named "ImageName" and set
// the string
ParseFile fileObject = (ParseFile) object
.get("imageContent");
fileObject
.getDataInBackground(new GetDataCallback() {
public void done(byte[] data,
ParseException e) {
if (e == null) {
Log.d("test",
"We've got data in data.");
// Decode the Byte[] into
// Bitmap
Bitmap bmp = BitmapFactory
.decodeByteArray(
data, 0,
data.length);
// Get the ImageView from
// main.xml
ImageView image = (ImageView) findViewById(R.id.image);
// Set the Bitmap into the
// ImageView
image.setImageBitmap(bmp);
// Close progress dialog
progressDialog.dismiss();
} else {
Log.d("test",
"There was a problem downloading the data.");
}
}
});
}
});
}
});
}
}发布于 2016-01-06 08:55:34
这个问题的答案是:如何创建允许个人资料图片上传/更改的应用程序?
我已经解决了我一直面临的问题
发布于 2016-01-02 04:40:40
尝试使用能够处理图片缓存的图像库。
你可以试试滑行或毕加索。
首先,将库添加到项目中。他们不是自己下载文件和解码,而是使用库为您下载和缓存对象。
(滑动示例)在搜索对象并提取解析文件之后,使用幻灯片:
ParseFile fileObject = (ParseFile) object.get("imageContent");
String url = fileObject.getUrl();
ImageView image = (ImageView) findViewById(R.id.image);
Glide.with(getContext())
.load(url)
.into(image);下一次打开应用程序时,Glide将在缓存中搜索对象,并且只在需要的情况下获取对象。
发布于 2016-01-02 09:34:03
尝试以这种方式更好地使用BitMap。
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("subclass");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> List, ParseException e) {
// TODO Auto-generated method stub
if (e == null) {
// success
if (List.size() > 0) {
for (ParseObject parseObject : List) {
// here fetch image like..
ParseFile image = (ParseFile) parseObject.get("fieldName");
if (image != null) {
Log.e("getting Image", "Image URL " + image.getUrl());
// here add to your adapter array
Picasso.with(getApplicationContext()).load(image.getUrl()).fit().into("imageView");
}
}
// and here call your adapter for fill array data
}
} else {
// e.getMessage() here getting error ...
}
}
});https://stackoverflow.com/questions/34561551
复制相似问题