从 Parse 下载图像文件到 Android
Download image file from Parse into Android
我正在创建一个应用程序(Instagram 的基本低级克隆),用户可以在其中查看其他用户发布的图片。但是,我似乎无法将图像从 Parse 下载到 Android。
我附上我的代码。我只是想让你知道我没有收到错误,也没有我的应用程序崩溃。我的应用程序运行良好,但它不会在我的应用程序上显示任何内容。谁能告诉我我做错了什么?谢谢!
public class User extends AppCompatActivity {
static String title;
RelativeLayout relativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
setTitle(title);
relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
ParseQuery<ParseObject> query = ParseQuery.getQuery("Images");
query.whereEqualTo("username", title);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if(e==null){
for(ParseObject object : objects){
Log.i("info", "image found!");
ParseFile file = (ParseFile) object.get("image");
file.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
if(e==null){
Bitmap bitmapImage = BitmapFactory.decodeByteArray(data, 0, data.length);
ImageView image = new ImageView(getApplicationContext());
image.setImageBitmap(bitmapImage);
relativeLayout.addView(image);
}
else{
Log.i("info", e.getMessage());
}
}
});
}
}
else{
Log.i("info", e.getMessage());
}
}
});
}
}
我解决了。问题是 ACL。它被设置为私有,因此我的应用程序获得了一个大小为 0 的对象数组。我将它设置为 public,它现在可以工作了。
我希望这是正确的做法。不知道我是否应该将 ACL 保留为 public.
我正在创建一个应用程序(Instagram 的基本低级克隆),用户可以在其中查看其他用户发布的图片。但是,我似乎无法将图像从 Parse 下载到 Android。 我附上我的代码。我只是想让你知道我没有收到错误,也没有我的应用程序崩溃。我的应用程序运行良好,但它不会在我的应用程序上显示任何内容。谁能告诉我我做错了什么?谢谢!
public class User extends AppCompatActivity {
static String title;
RelativeLayout relativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
setTitle(title);
relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
ParseQuery<ParseObject> query = ParseQuery.getQuery("Images");
query.whereEqualTo("username", title);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if(e==null){
for(ParseObject object : objects){
Log.i("info", "image found!");
ParseFile file = (ParseFile) object.get("image");
file.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
if(e==null){
Bitmap bitmapImage = BitmapFactory.decodeByteArray(data, 0, data.length);
ImageView image = new ImageView(getApplicationContext());
image.setImageBitmap(bitmapImage);
relativeLayout.addView(image);
}
else{
Log.i("info", e.getMessage());
}
}
});
}
}
else{
Log.i("info", e.getMessage());
}
}
});
}
}
我解决了。问题是 ACL。它被设置为私有,因此我的应用程序获得了一个大小为 0 的对象数组。我将它设置为 public,它现在可以工作了。
我希望这是正确的做法。不知道我是否应该将 ACL 保留为 public.