Android:无法更改 Window 标题中的图像
Android: Not able to change image in Window Title
我有一个 parent activity(所有其他活动都从中扩展)- 在 window 标题中有一个 'Navigation Drawer Toggle' 图标。
我想在每次单击抽屉图标时更改 'Navigation Drawer Toggle' 图像(到 open/close 抽屉)
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' 图标在 window 标题中还是其他?
可能 setContentView
和 setFeatureInt
布局相同,在设置标题布局之前调用 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
布局
的布局不同
我有一个 parent activity(所有其他活动都从中扩展)- 在 window 标题中有一个 'Navigation Drawer Toggle' 图标。
我想在每次单击抽屉图标时更改 'Navigation Drawer Toggle' 图像(到 open/close 抽屉)
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' 图标在 window 标题中还是其他?
可能 setContentView
和 setFeatureInt
布局相同,在设置标题布局之前调用 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
布局