我正在尝试动态创建ImageButton
并为其应用样式。
这是我的风格:
<style name="ActionBarActionButton">
<item name="android:layout_width">30dp</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:background">@drawable/action_button</item>
</style>
这是按钮创建:
ImageButton actionButton = new ImageButton(context, null, R.style.ActionBarActionButton);
似乎根本没有效果,没有应用样式参数。
答案 0 :(得分:2)
我发现这种方式不起作用,但没有人能说出原因(你好谷歌?)
我不得不使用这样的工作:
我为按钮创建了一个新的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="40dp"
android:layout_height="fill_parent"
android:background="@drawable/action_button" >
</ImageButton>
然后将其膨胀为这样的布局:
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ImageButton actionButton = (ImageButton) inflater.inflate(R.layout.imagebutton_action, getActionsLayout(), false);
actionButton.setImageResource(action.getIconResource());
getActionsLayout().addView(actionButton);
答案 1 :(得分:-2)
样式通常用在XML文件中(在用于样式化UI元素的布局中,在清单中为活动添加样式或主题),我认为您可以在代码中添加样式但是必须正确声明它。
要声明样式,XML文件的根节点必须为<resources>
,您的样式将如下所示:
<resources>
<style name="ActionBarActionButton">
<item name="android:layout_width">30dp</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:background">@drawable/action_button</item>
</style>
</resources>
我不知道它是否是您的问题的根源。
有关样式的更多信息,我建议您阅读Andrdoid指南:http://developer.android.com/guide/topics/ui/themes.html