Android 获取ImageView加载的文件名';s图像来自
我正在寻找ImageView对象的内置方法,以告诉我从哪个文件检索图像 例如,在我前面调用的代码中Android 获取ImageView加载的文件名';s图像来自,android,Android,我正在寻找ImageView对象的内置方法,以告诉我从哪个文件检索图像 例如,在我前面调用的代码中 ImageView iv = new ImageView(MainActivity.this); iv.setImageBitmap(BitmapFactory.decodeFile(f.getAbsolutePath())); 假设我不再引用“f”,需要找出f是什么。有办法吗?我的工作是创建一个扩展ImageView的类,并用它来裁剪字符串。(或在ImageVi
ImageView iv = new ImageView(MainActivity.this);
iv.setImageBitmap(BitmapFactory.decodeFile(f.getAbsolutePath()));
假设我不再引用“f”,需要找出f是什么。有办法吗?我的工作是创建一个扩展ImageView的类,并用它来裁剪字符串。(或在ImageView和字符串之间创建映射)
建议?据我所知,所有BitmapFactory.decode文件返回的都是位图。由于位图可能来自任何源(并非所有源都有路径,例如来自RAM),因此它没有封装在其中的文件路径 关于您的解决方案-任何都可以,但选择一个取决于您的内存/速度要求。例如,如果您只有一对,您可以使用pair而不是map,或者您可以只保留位图旁边的路径,但这只是吹毛求疵
// GET THE URI FROM THE IMAGE (YOU NEED A BITMAP FOR THIS - WORKAROUND FOLLOWS)
Uri tempUri = getImageUri(getApplicationContext(), bitmap);
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
// THE WORKAROUND (OPTIONAL IN CASE YOU DO NOT HAVE A BITMAP)
Bitmap bitmap = ((BitmapDrawable)youImageView.getDrawable()).getBitmap();
积分:
在我使用Android的经验中,我唯一需要做的就是开始使用Twitter4JSDK和TwitpicAPI。TwitPic需要您要上载的图像的绝对路径。这是我找到的最好的解决方案(实际上是几种不同的解决方案的组合),但它一直都很有魅力。希望对您有所帮助。最简单的解决方法可能是为ImageView使用标记:
ImageView iv = new ImageView(MainActivity.this);
String path = f.getAbsolutePath();
iv.setImageBitmap(BitmapFactory.decodeFile(path));
iv.setTag(path);
正在检索路径:
String path = (String) iv.getTag();
这是一个重复的问题:您的解决方案对我来说似乎是正确的解决方案。您如何获得
ImageView
的图像?它是来自相机还是画廊的URI?什么是f.getAbsolutePath()?@DevC f可能是一个文件对象。如果从图像选择器获取图像,更常见的情况是,URI对象将由Intent.getData()检索,并将改为使用ImageView.setImageURI()进行设置。
String path = (String) iv.getTag();