2014-12-05 2 views
1

Android 기본 설정을 서브 클래 싱하여 내 레이아웃을로드했습니다 (약간 수정 됨). 그러나 레이아웃에는 환경 설정에서 제공하는 기본 제공 아이콘이 있습니다. 클래스 : 나는 프로그래밍 방식으로 안드로이드 기본 설정 클래스와 같은 이미지 뷰에 대한 참조를 검색 할 수 없습니다안드로이드 환경 설정에서 프로그래밍 방식으로 아이콘 크기 (@ + android : id/icon)

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

는 com.android.internal.R 확인할 수 없습니다 않기 때문에 :

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

프로그래밍을하는 것이 가능 크기를 변경하십시오. 이상적으로는 원하는 각 크기에 맞는 다양한 레이아웃을 만들지는 않을 것입니다. 여기의 해결책은 AttributeSet을 내 생성자에 전달하고 아이콘의 크기를 설정하는 것이지만이 작업을 수행하는 방법을 알 수는 없다고 생각합니다.

+0

잘못된'R' 파일을 가져오고 있습니다. 패키지 이름으로'R'을 가져 오십시오. – DroidDev

+0

[여기] (http://stackoverflow.com/questions/6105504/load-activity-and-or-application-logo-programmatically-from-manifest)에서보십시오 – BzH

답변

2

귀하의 이미지 뷰의 ID 선언이 잘못 XML에서이를 수정 :

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

초기화 이미지 뷰 활동이 방법 :

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

고마워요! 위대한 작품! – Mark

+0

다행입니다. –

1

변경 @android:id/icon 수입에 android.R.id.icon

-1

이 솔루션을 시도해보십시오

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

이것은 imageView에 대한 참조를 얻는 방법을 설명하지 않습니다. 또한 이미지보기에 setHeight 또는 setWidth라는 메서드가 있다고 생각하지 않습니다. – Mark

관련 문제