gpt4 book ai didi

java - QR 码图像未从我的 Android 应用程序中的位图中保存

转载 作者:行者123 更新时间:2023-12-01 19:15:56 24 4
gpt4 key购买 nike

我创建了一个二维码生成器,并且有一个“保存”按钮。所以我希望当我按下保存按钮时它应该保存在手机存储中。但是当我运行此代码时,二维码生成良好,但未保存它,它在 Toast 中显示“图像未保存”。我怎样才能挽救这个问题?我想将二维码作为图像保存在手机存储中。然后人们可以保存它并使用它。我希望你们能帮助我解决这个问题。提前致谢。



EditText editText;
ImageView imageView;
Button btnGenerate, save;
Bitmap bitmap;




@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qrgenerator);


editText = findViewById(R.id.editText);
imageView = findViewById(R.id.imageView);
btnGenerate = findViewById(R.id.generate);
save = findViewById(R.id.save);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);


btnGenerate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String data = editText.getText().toString();

if (data.isEmpty()) {

editText.setError("Value Required");
} else {

QRGEncoder qrgEncoder;
qrgEncoder = new QRGEncoder(data, null, QRGContents.Type.TEXT, 500);

try {
bitmap = qrgEncoder.encodeAsBitmap();
imageView.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
}


}
});


save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

boolean save;
String result;
String savePath = Environment.getExternalStorageDirectory().getPath() + "/QRCode/";

try {
save = QRGSaver.save(savePath, editText.getText().toString().trim(), bitmap, QRGContents.ImageType.IMAGE_PNG);
result = save ? "Image Saved" : "Image Not Saved";
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}


}
});


}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

if (item.getItemId()== android.R.id.home){
this.finish();

}
return super.onOptionsItemSelected(item);
}
}

我还在 list 文件中添加了此权限。

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

最佳答案

尝试改变

Environment.getExternalStorageDirectory().getPath() + "/QRCode/"

Environment.getExternalStoragePublicDirectory().getPath() + "/QRCode/"

并且不要忘记检查用户权限

关于java - QR 码图像未从我的 Android 应用程序中的位图中保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59418359/

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