gpt4 book ai didi

android - 如何在 android 中使用解析 api 在解析服务器中上传图像

转载 作者:IT老高 更新时间:2023-10-28 23:11:16 25 4
gpt4 key购买 nike

我想在 android 的解析云服务器中上传一张图片。但我做不到。

我已经尝试了以下代码:

Drawable drawable = getResources().getDrawable(R.drawable.profilepic) ;
Bitmap bitmap = (Bitmap)(Bitmap)drawable()
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] data = stream.toByteArray();

ParseFile imageFile = new ParseFile("image.png", data);
imageFile.saveInBackground();

请告诉我该怎么做。

最佳答案

经过几个小时的努力,这里的代码段对我有用。

1. Activity 类的数据成员

Bitmap bmp;
Intent i;
Uri BmpFileName = null;

<强>2。启动相机。目标是启动相机 Activity 和 BmpFileName 以存储对文件的引用

String storageState = Environment.getExternalStorageState();
if (storageState.equals(Environment.MEDIA_MOUNTED)) {

String path = Environment.getExternalStorageDirectory().getName() + File.separatorChar + "Android/data/" + this.getPackageName() + "/files/" + "Doc1" + ".jpg";

File photoFile = new File(path);
try {
if (photoFile.exists() == false) {
photoFile.getParentFile().mkdirs();
photoFile.createNewFile();
}
}
catch (IOException e)
{
Log.e("DocumentActivity", "Could not create file.", e);
}
Log.i("DocumentActivity", path);
BmpFileName = Uri.fromFile(photoFile);
i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, BmpFileName);
startActivityForResult(i, 0);

3.通过覆盖 onActivityResult 从相机输出中读取内容。目标是评估 bmp 变量。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
try {
bmp = MediaStore.Images.Media.getBitmap( this.getContentResolver(), BmpFileName);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {

// TODO Auto-generated catch block
e.printStackTrace();
}
// Myocode to display image on UI - You can ignore
if (bmp != null)
IV.setImageBitmap(bmp);
}
}

4.保存事件

// MUST ENSURE THAT YOU INITIALIZE PARSE
Parse.initialize(mContext, "Key1", "Key2");

ParseObject pObj = null;
ParseFile pFile = null ;
pObj = new ParseObject ("Document");
pObj.put("Notes", "Some Value");

// Ensure bmp has value
if (bmp == null || BmpFileName == null) {
Log.d ("Error" , "Problem with image"
return;
}

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(CompressFormat.PNG, 100, stream);
pFile = new ParseFile("DocImage.jpg", stream.toByteArray());
try
{
pFile.save();
pObj.put("FileName", pFile);
pObj.save();
_mParse.DisplayMessage("Image Saved");
}
catch (ParseException e)
{
// TODO Auto-generated catch block
_mParse.DisplayMessage("Error in saving image");
e.printStackTrace();
}

//在我的情况下完成 Activity 。你可以选择别的东西完成();

所以这是与其他人的主要区别

  • 我调用了初始化解析。您可能会对此一笑置之,但人们已经花费了数小时调试代码,却没有意识到解析没有初始化
  • 使用 Save 而不是 SaveInBackground。我知道它可能会举行 Activity ,但这对我来说是理想的行为,更重要的是它有效

如果它不起作用,请告诉我

关于android - 如何在 android 中使用解析 api 在解析服务器中上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16292853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com