从Android Preference以编程方式设置图标的大小(@ + android:id / icon)

时间:2014-12-05 08:01:12

标签: android

我将Android Preference子类化为加载我自己的布局(稍加修改),但我的布局仍然具有Preference类提供的内置图标:

<ImageView
    android:id="@+android:id/icon"
    android:layout_width="20dp"
    android:layout_height="20dp/>

我无法像Android Preference类那样以编程方式检索对ImageView的引用,因为无法解析com.android.internal.R:

ImageView imageView = (ImageView) view.findViewById(com.android.internal.R.id.icon);

是否可以以编程方式更改大小。理想情况下,我不会为我想要的每个尺寸创建各种布局。我认为这里的解决方案是将AttributeSet传递给我的构造函数并让它设置图标的大小,但我无法弄清楚如何执行此操作。

3 个答案:

答案 0 :(得分:2)

你的ImageView id声明在xml中是错误的:

android:id="@android:id/icon"

在活动中以这种方式初始化ImageView:

ImageView imageView = (ImageView) view.findViewById(android.R.id.icon);

答案 1 :(得分:1)

更改为@android:id/icon并导入android.R.id.icon

答案 2 :(得分:-1)

试试这个解决方案:

imageView.post(new Runnable() {
@Override
public void run() {
imageView.setHeight(VALUE)
imageView.setWidth(VALUE)
}
})