位图崩溃活动



我正试图将byte[]转移到另一个目的并将其转换为位图,但它使我的应用程序崩溃,logcat中没有错误,logcat刚刚重新启动。有些照片运行良好,有些只是破坏了活动。

如果我没有得到图像值,只得到其他数据,它的工作效果很好,但当我也试图得到图像时,它会重新启动。

首先,我从解析中获取图像字节[],然后通过intent将其传输到另一个活动,并将其转换为位图。

从解析中获取数据:

ParseQuery<ParseObject> query = ParseQuery.getQuery("Feed");
query.orderByDescending("createdAt");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e == null){
for (ParseObject allData : objects) {

image = (ParseFile) allData.get("Pictures");

if (image == null){
Log.e("Image", "NULL");
}else{
image.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
if (e == null){

date = allData.getCreatedAt();
DateFormat df = new SimpleDateFormat("HH:mm:ssnyyyy-MM-dd");
reportDate = df.format(date);
arrayList.add(new MyData(reportDate,allData.getString("UserName"),allData.getString("BussinessName"),data));
}

adapter = new MyAdapter(FeedActivity.this, arrayList);
feedListView.setAdapter(adapter);
adapter.notifyDataSetChanged();

}
});
}
}

}
}
});

将字节[]发送到另一个活动:

feedListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
// TODO Auto-generated method stub

Intent intent = new Intent(FeedActivity.this, BusinessDetails.class);
MyData data = (MyData) adapter.getItem(position);
String BusinessNamePage = data.getBusinessName();
String DatePage = data.getDate();
String UserNamePage = data.getUserName();
byte[] PicturePage = data.getPicture();
intent.putExtra("image",PicturePage);
intent.putExtra("BussinessName", BusinessNamePage);
intent.putExtra("Date", DatePage);
intent.putExtra("username", UserNamePage);
startActivity(intent);

}
});

在另一个活动中获取字节[]并将其转换为位图:

public class BusinessDetails extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_business_details);
ImageView imageView = findViewById(R.id.imageViewTitle);
TextView businessName = findViewById(R.id.businessNameDetailTitle);
TextView userName = findViewById(R.id.userNameValue);
TextView date = findViewById(R.id.dateValue);
Intent intent = getIntent();
byte[] image = intent.getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(image, 0, image.length);
imageView.setImageBitmap(bmp));
businessName.setText(intent.getStringExtra("BussinessName"));
date.setText(intent.getStringExtra("Date"));
userName.setText(intent.getStringExtra("username"));
}

}

谢谢!

编辑:错误-https://ibb.co/ngJGWBJ

好吧,我终于开始工作了。

我试图通过意图传递的图片太大了,这就是为什么有些照片很好,有些照片破坏了我的应用程序。

为了解决这个问题,我使用了这个解决方案:https://stackoverflow.com/a/45149923/14446860

最新更新