Android:无法在Window Title中更改图像

时间:2015-02-26 06:54:32

标签: android android-imageview

我有一个父活动(所有其他活动都会延伸) - 窗口标题中有一个“导航抽屉切换”图标。

我想在每次点击抽屉图标时更改“导航抽屉切换”图像(打开/关闭抽屉)

public class ParentActivity extends Activity {
private ImageView imgDrawer;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    ....
    setContentView(R.layout.window_title);  
    imgDrawer = (ImageView)findViewById(R.id.imgdrawer);
    ...
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                R.layout.window_title);
}

...
public void openDrawer()
{
  ...
   //Switch Image
   imgDrawer.setImageDrawable(getResources().getDrawable( R.drawable.ic_close_drawer));
}

public void closeDrawer()
{
   ...
   //Switch Image
   imgDrawer.setImageDrawable(getResources().getDrawable( R.drawable.ic_open_drawer));
}
...
}

问题是,当调用openDrawer和closeDrawer时,'imgDrawer'没有改变。 这是因为'imgDrawer'图标是在窗口标题中还是别的什么?

1 个答案:

答案 0 :(得分:1)

在为Title设置布局之前,可能setContentViewsetFeatureInt布局相同并调用getWindow().setFeatureInt。这样做:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
    ....
    setContentView(R.layout.window_title);  

    ...
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                R.layout.window_title);
    imgDrawer = (ImageView)getWindow().findViewById(R.id.imgdrawer);
}

或传递包含不同的ImageView的布局来自setContentView布局