我正在开发一个Android应用程序.它具有捕获图像应显示在屏幕上的功能,我需要获取该图像路径,以便我可以将该图像发送到服务器.
我能够在屏幕上显示图像,但无法获得绝对图像路径.
我正在走路:
content://media/external/images/media/1220
content://media/external/images/media/1221
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得实际的图像路径?
这是我的代码:
mintent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
mintent.putExtra(MediaStore.EXTRA_OUTPUT,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
startActivityForResult(mintent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if ((data != null && !data.toString().equalsIgnoreCase("Intent { }"))
|| requestCode == 1)
switch (requestCode) {
case 1:
try {
// Uri imageFileUri = data.getData();
// String path=getRealPathFromURI(this,imageFileUri);
// Bitmap bitmap = (Bitmap) data.getExtras().get("data");
String photoPath = null;
Bitmap bitmap = (Bitmap) data.getExtras().get("data");
Intent intent = new Intent(this, Media.class);
intent.putExtra("BitmapImage", bitmap);
Bundle b …Run Code Online (Sandbox Code Playgroud) 我读过有关Picasso图像下载lib但有一个问题我无法解决它.这是大图像下载.当我有大图像,即2000 x 1920时,它被压碎(内存不足).
我怎么能解决这个问题?
Picasso.with(上下文).load(myUrl).into(ImageView的);
我想将图像作为位图从一个活动传递到另一个活动.我想知道是否可以这样做.
发送活动
Intent intent = new Intent(getApplicationContext(), BitmapActivity.class);
Bundle b = new Bundle();
b.putParcelable("BITMAP", bitmap);
intent.putExtras(b);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
接收活动
Bundle bb = this.getIntent().getExtras();
b = bb.getParcelable("BITMAP");
Run Code Online (Sandbox Code Playgroud)
但我得到了!!! 失败的粘合剂交易!错误
我已使用webView将内容显示和捕获为图像,并使用共享选项发送。
但是我需要一个无需使用webview即可将html代码转换为图像的功能。
请帮我。
提前致谢。
在我的 android 应用程序中,我使用相机创建图像,为此我使用相机 API,我必须在拍照后显示其缩略图,并且我希望将其保存在另一个文件夹中。所以我对缩略图创建器功能的输出将是图像路径,我期待一个文件输出,它是缩略图路径。我浏览了很多教程和开发人员文档,我找到了很多方法
eg : ThumbnailUtils,..
Run Code Online (Sandbox Code Playgroud)
但所有这些方法都返回位图对象或字节数组,。保存图像缩略图的最佳方法是什么。
public void manageImage() {
/*
other things
*/
Model.addThumnailPath(createThumnail(imageFile));
}
public String createThumnail(File imageFile){
// operations
return thumnailPath;
}
Run Code Online (Sandbox Code Playgroud) 我试图从画廊或拍摄的相机中显示图像ImageView.我开始接受OOM这个过程.所以我决定找出它是如何工作的.所以我尝试了不同尺寸的图像,这里是观察,
我试图加载一个19KB的图像,ImageView并得到以下错误信息.无法分配4915212字节分配570452空闲字节和557KB直到OOM2MB映像我无法分配31961100字节分配16777120空闲字节和29MB直到OOM2MB
为什么19KB图像需要大约4.6MB的主内存和2MB图像需要30 MB的主内存空间?
PS:我发现很多解决方案,比如根据显示器对图像进行下采样,但没有一个解释这种行为.
通过whatsapp发送图像时,您可以看到您在图像视图中发送的图像非常好
例如,我发送了两张图片给我的朋友
第一张图片的大小:1296像素 X 2304像素
第二图像的大小:1920像素 × 1080像素
这个图像太大,因此whatsapp必须先缩放它们才能在imageview中显示它们
通过whatapp 333像素 X 339像素缩放后的第一图像的大小
通过whatsapp 333像素 X 187像素缩放后的第二图像的大小
如您所见,宽度相同,只有高度不同.我试图找出whatapp如何缩放这些图像,但我的方法给了我一个不同维度的图像远离whatsapp的图像
方法1
private void resizeImage(){
Uri selectedImage = imageReturnedIntent.getData();
d("image url is " + selectedImage);
InputStream imageStream = getContentResolver().openInputStream(selectedImage);
BitmapFactory.decodeStream(imageStream,null, options);
imageHeight = options.outHeight;
imageWidth = options.outWidth;
options.inSampleSize = calculateInSampleSize(options,reqWidth,reqHeight);
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeStream(imageStream,null, options);
}
private int calculateInSampleSize(BitmapFactory.Options options, int reqWidth , int reqHeght){
int height = options.outHeight;
int width = options . outWidth; …Run Code Online (Sandbox Code Playgroud) SqliteDatabase我的申请中有一个。在此数据库中,我保存了Sting和Blob(用于保存图像)。该图像使用byte []保存在应用程序中。我借助以下代码将该图像转换为Bitmap:
byte[] Recycler_imageByte;
Bitmap Recycler_theImage;
holder.Recycler_imageByte = data.get(position).getKey_image();
ByteArrayInputStream imageStream = new ByteArrayInputStream(holder.Recycler_imageByte);
holder.Recycler_theImage = BitmapFactory.decodeStream(imageStream);
Run Code Online (Sandbox Code Playgroud)
我想在Glidelibary中显示此图像,我编写了以下代码:
Glide.with(context).load(holder.Recycler_theImage).asBitmap().into(holder.Recycler_adapter_image);
Run Code Online (Sandbox Code Playgroud)
但是,当我运行应用程序时,显示以下错误:
03-15 10:23:14.311 22440-22440/com.tellfa.dastanak E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.tellfa.dastanak, PID: 22440
java.lang.IllegalArgumentException: Unknown type class android.graphics.Bitmap. You must provide a Model of a type for which there is a registered ModelLoader, if you are using a custom model, you must first call Glide#register with a ModelLoaderFactory for your custom model class …Run Code Online (Sandbox Code Playgroud) 在我的 android 应用程序中,我有几个小部件,我希望它们看起来像这些进度条。
现在我知道我不能使用任何外部库来做到这一点,因为小部件不支持大多数自定义视图。我见过大多数开发人员使用位图来绘制这样的东西。我可以设法画一个完整的圆圈。但是如何使用位图绘制这个弧形进度条或者还有其他方法吗?
感谢你的帮助。谢谢!
我创建了一个简单的应用程序来裁剪图像.现在我想将此图像保存到Fire基座.
photo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Intent imageDownload = new
Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Intent imageDownload=new Intent();
imageDownload.setAction(Intent.ACTION_GET_CONTENT);
imageDownload.setType("image/*");
imageDownload.putExtra("crop", "true");
imageDownload.putExtra("aspectX", 1);
imageDownload.putExtra("aspectY", 1);
imageDownload.putExtra("outputX", 200);
imageDownload.putExtra("outputY", 200);
imageDownload.putExtra("return-data", true);
startActivityForResult(imageDownload, GALLERY_REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == GALLERY_REQUEST_CODE && resultCode == RESULT_OK &&
data != null) {
Bundle extras = data.getExtras();
image = extras.getParcelable("data");
photo.setImageBitmap(image);
}
}
Run Code Online (Sandbox Code Playgroud)
如何将此图像保存到Firebase.我尝试了很多教程,但没能成功.请用简单的代码验证.