【问题标题】:Programmatically Modify ActionBarDrawerToggle Drawable以编程方式修改 ActionBarDrawerToggle Drawable
【发布时间】:2014-10-01 06:26:12
【问题描述】:

有谁知道在构造函数中通过资源 ID 设置用于 ActionBarDrawerToggle 的可绘制对象的方法?我正在使用导航抽屉,我想以编程方式将颜色过滤器应用于图标,但我不知道如何将其作为可绘制对象访问。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 你的意思是三条图像?
  • 是的,就是这个。我可以从静态资源可绘制 ID 设置它,但我希望能够在运行时获取可绘制的图标以在图像上执行 .setColorFilter
  • 我认为没有简单的方法可以做到这一点,但是如果您在以下链接中查看我的答案,它在shiftHomeView() 方法中由upView 表示:stackoverflow.com/questions/24240439/…
  • @MikeM。那行得通,但是太hacky了。虽然我找不到其他方法。将其发布为答案,我会接受它(除非出现更好的解决方案)。谢谢!
  • 实际上,IIRC,您可能不必在层次结构中“走得那么远”,但它仍然是 hacky。让我检查一下。

标签: android android-actionbar navigation-drawer android-drawable


【解决方案1】:

由于该视图的框架 ID 是隐藏的,我发现访问它的唯一方法是根据主视图在其中的位置遍历层次结构。

public ImageView getUpView()
{
    ViewGroup parentView = (ViewGroup) findViewById(android.R.id.home).getParent();
    return (ImageView) parentView.getChildAt(0);
}

【讨论】:

  • 如果您使用的是 support.v7 中的 ActionBarDrawerToggle,此方法将不起作用。有关适用于支持库 23.1 的方法,请参阅 my answer here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 2015-02-27
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多