2017-08-25 35 views
0

有没有什么办法让图像被android布局指向并在请求者接收之前对其进行修改?挂钩从布局加载后获取图像

例如,如果我有一个像的图像视图:

<ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/myimage.png" 
     /> 

是否有可能登记到任何钩(或任何其他方式),其中ImageView的接收它之前,我可以修改图像?

试图澄清一点的问题:

1)ussual方式Android版:

  • 的应用程序运行,并与ImageView的请求@绘制/ myimage.png
  • 读取布局
  • 图像加载并提供给ImageView的显示它

2)我想什么尝试或完成:

  • 的应用程序运行,并与ImageView的请求@绘制读取布局/ myimage.png
  • 我前面,不知何故,告诉机器人 之前给我的图像/流将其提供给ImageView的。我修改它
  • 我返回修改后的图像,它在imageview中显示。

有人知道这是否可行吗?我已经看到像dexguard这样可以做到这一点的空调。任何提示都会非常有用,因为经过几天的调查,我还没有找到任何办法。

干杯。

+0

使用毕加索尝试或滑翔库..他们允许修改您的图像视图.. –

+0

我不认为这是一个正确的答案我的问题。 Picasso或Glide是libs将图像从本地或远程传输到图像视图(不知道它是否具有其他功能),但他们不允许按照我的要求去做。他们都会在imageview上显示原始图像。 – Notbad

回答

0
  • 你需要从资源中提取位
  • 修改位
  • 通过Java代码应用修改位图的ImageView

这些片段可能有助于

//extract bitmap from drawable resources  
Bitmap icon = BitmapFactory.decodeResource(getResources(), 
              R.drawable.icon_resource); 
//modify bitmap code here 

//apply modified bitmap to image view  
imageview.setBitmap(icon); 
+0

我真的很感激你的回答,但是,这又不能解决我想要做的事情。该代码只是自行加载图像并手动提供图像视图。我想从布局的视图中“捕捉”图像的请求,并将其放在中间并将输出提供给该图像视图。我正在做一个我正在做的概念验证的应用程序。我知道如何以不寻常的方式做到这一点(就像你做的那样)。 – Notbad

+1

我想你可能需要创建一个扩展ImageView的新类,找到请求图像并在图像中显示并在那里修改的函数。我不确定哪个函数适合那个函数,但是通过覆盖它们来观察每个函数的活动,并且使用日志可能会起作用。 希望它可以帮助 –

+0

再次感谢@kamran但我在寻找一种方式来做到这一点,而无需修改标准ImageView的视图。我无论如何都会给予好评这个答案,因为可以帮助别人。好像dexguard offuscators能做到这一点,所以,这就是为什么我在寻找这一点。 – Notbad