获取一个图片的Bitmap

JPF1024 2015-08-31 12:28:00
我定义了一个PopupWindow,在MainActivity里面,然后在PopupWindow里面有涉及到一个图片。

图片的位置在:Fragment->ViewPager->ImageView.

用了一些方法取不到正在展示的图片,如果用过《一个》APP的,可以参考一下,就是点击右上角的图标会弹出一个PopupWindow,里面有分享,保存到本地这些操作,要实现的效果就是那样的。

大概示例图如下,求帮忙啊。。实在获取不到ViewPager里面正在展示的图片。




下面两种方式,在MainActivity里面已经用过了,但是没有效果。。

//viewPager获取当前页卡的View.

View currentView = pager.getCurrentItem();

//获取imageview的bitmap.
Bitmap image = ((BitmapDrawable)imageView.getDrawable()).getBitmap();



...全文
288 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
StoneHui_ 2015-08-31
  • 打赏
  • 举报
回复
1. 获取到的ImageView是对的吗?2. ImageView中的图片是以ImageBitmap的方式设置的吗?如果是background的话要使用getBackground获取。
JPF1024 2015-08-31
  • 打赏
  • 举报
回复
引用 3 楼 sagittarius1988 的回复:
是不是可以自己保存这个bitmap,点击事件里再进行处理呢
这个是通过网络获取的,你的意思是,在展示的时候就保存到本地? 我倒是有个想法,就是加载图片的时候记录url,然后在设置的时候在请求一次(用了volley的缓存,加载过的,应该可以直接从缓存里面取),然后,就是用SharedPreferences 记录那个url,不知道这样会不会导致实时性的问题(就是图片已经展示了,SharedPreferences里面的数据还是上一张图片的url),
sagittarius1988 2015-08-31
  • 打赏
  • 举报
回复
是不是可以自己保存这个bitmap,点击事件里再进行处理呢
JPF1024 2015-08-31
  • 打赏
  • 举报
回复
引用 1 楼 qJay_Dev 的回复:
imageview什么时候初始化了
imageview在点击Fragment的时候初始化,是加载的网络图片。
JarQ 2015-08-31
  • 打赏
  • 举报
回复
imageview什么时候初始化了
JPF1024 2015-08-31
  • 打赏
  • 举报
回复
引用 9 楼 ziyiwangchen 的回复:
urls 是从别的页面传过来的图片集合 需要一个集合才行 private ArrayList<String> urls ; urls = intent.getStringArrayListExtra("urls");
你可能意思理解错了,不过还是谢谢。
筱蒙 2015-08-31
  • 打赏
  • 举报
回复
urls 是从别的页面传过来的图片集合 需要一个集合才行 private ArrayList<String> urls ; urls = intent.getStringArrayListExtra("urls");
筱蒙 2015-08-31
  • 打赏
  • 举报
回复
试试这个 /** * 保存图片 */ private void saveImage() { String imageUrl = urls.get(mViewPager.getCurrentItem()); // 判断如果是本地图片需要添加"file://" if (!imageUrl.startsWith("http://")) { imageUrl = "file://" + imageUrl; } ImageLoader.getInstance().loadImage(imageUrl, new ImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { showMessage("保存失败!"); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { MediaStore.Images.Media.insertImage(getContentResolver(), loadedImage, "", ""); sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); showMessage("保存成功!"); } @Override public void onLoadingCancelled(String imageUri, View view) { } }); }
StoneHui_ 2015-08-31
  • 打赏
  • 举报
回复
引用 6 楼 dcxy0 的回复:
[quote=引用 5 楼 u014165119 的回复:] 1. 获取到的ImageView是对的吗?2. ImageView中的图片是以ImageBitmap的方式设置的吗?如果是background的话要使用getBackground获取。
1.获取的方式是对的,但是取不到数据,取回来是null,2.是加载的网络图片,也是bitmap格式的[/quote] 使用imageView.getBackground()试试
JPF1024 2015-08-31
  • 打赏
  • 举报
回复
引用 5 楼 u014165119 的回复:
1. 获取到的ImageView是对的吗?2. ImageView中的图片是以ImageBitmap的方式设置的吗?如果是background的话要使用getBackground获取。
1.获取的方式是对的,但是取不到数据,取回来是null,2.是加载的网络图片,也是bitmap格式的

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧