Java 如何从url Android Studio将位图下载到图库
我的项目上有位图,我想从url下载我的位图到图库。我该怎么办 我确实用它来创建二维码Java 如何从url Android Studio将位图下载到图库,java,android,bitmap,Java,Android,Bitmap,我的项目上有位图,我想从url下载我的位图到图库。我该怎么办 我确实用它来创建二维码 private Bitmap stringToBitmap(String content){ try { QRCodeWriter writer = new QRCodeWriter(); BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, 512, 512);
private Bitmap stringToBitmap(String content){
try {
QRCodeWriter writer = new QRCodeWriter();
BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, 512, 512);
int width = bitMatrix.getWidth();
int height = bitMatrix.getHeight();
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
bmp.setPixel(x, y, bitMatrix.get(x, y) ? Color.BLACK : Color.WHITE);
}
}
return bmp;
} catch (WriterException e) {
e.printStackTrace();
return null;
}
}
}
@Override
public void onClick(View view) {
Intent i;
switch (view.getId()) {
case R.id.qrindir:
Bitmap imageResult = stringToBitmap(texttt.getText().toString());
//I want download bitmap in there
break;
}
}
我将其用于stringtoBitmap
olustur.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bitmap imageResult = stringToBitmap(texttt.getText().toString());
} });
}
如果我没有弄错您的问题,您希望将位图保存到内部存储器中 在这种情况下,您可以使用如下方式使用
Bitmap.compress()
方法:
试试看{
FileOutputStream outstream=新的FileOutputStream(要保存的路径);
compress(bitmap.CompressFormat.PNG,100,扩展);
exptream.close();
}捕获(IOE异常){
...
}
还要确保为了在运行时将文件写入需要请求的内部(主)存储,这可能不适用于Android 10(API 29)以上的设备。在这种情况下,您可以使用创建文档。尝试以下操作:
private final void saveJpeg(@NonNull位图,@NonNull字符串文件名)引发IOException{
//创建将连接到外部媒体存储的文件输出流
OutputStream fos=null;
ContentResolver cr=getApplicationContext().getContentResolver();
ContentValues cv=新的ContentValues();
//为文件设置元数据
cv.put(MediaStore.MediaColumns.DISPLAY_NAME,fileName);
cv.put(MediaStore.MediaColumns.MIME_TYPE,“image/jpg”);
cv.put(MediaStore.MediaColumns.RELATIVE_PATH,Environment.DIRECTORY_PICTURES);
//获取新图像文件的uri
Uri imageUri=cr.insert(MediaStore.Images.Media.EXTERNAL\u CONTENT\u Uri,cv);
//连接文件输出流
fos=cr.openOutputStream(imageUri);
//压缩位图并写入输出流
bitmap.compress(bitmap.CompressFormat.JPEG,100,fos);
//关闭文件输出流
fos.flush();
fos.close();
}
这会将位图压缩为jpg并写入gallery
另外,请记住在AndroidManifest.xml中获得权限
可以添加什么(保存路径);文件的路径,例如:file(Environment.getExternalStorageDirectory(),“file.png”),这将在设备的根主存储中创建“file.png”;和`位图imageResult=stringToBitmap(texttt.getText().toString())**saveJpeg**(图像结果,“deneme”)`您是否在活动中调用了此功能?请查看我的更新SaveJPEG(可以添加哪些内容);你能帮我保存JPEG吗;