마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱아이콘을 받아와서, 위젯 삽입하려고 합니다..

0 추천

이게 아이콘 받은 액티비티이구요

 

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.simple_widget_layout);


        ImageView iv = (ImageView) findViewById(R.id.Icon);





        try {
            dw = getPackageManager().getApplicationIcon("com.android.contacts");



        } catch (NameNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }

iv.setBackgroundDrawable(dw);





    }


}

 

이게 버튼코드입니다..

 

<Button
android:id="@+id/Icon"
        android:layout_width="80dp"
        android:layout_height="80dp"
 
        android:layout_gravity="center_vertical"
        android:scaleType="fitCenter"/>
 
 
        />
 
 
 
 
정말 코딩 처음해봐서 너무너무 허접입니다 ㅠㅠ
setbackgrounddrawable도 없어졋더라구요 ㅠㅠ
위에서받은 어플리케이션 아이콘을 위젯 위에 띄우려면 어떻게 해야할까요..?ㅠㅠ
익명사용자 님이 2015년 3월 3일 질문
코드 맞게 작성하셨는데,

Xml에서 Button으로 작성하셨으면

java 코드에서 ImageView가 아닌

Button iv = (Button) findViewById(R.id.icon);

로 통일시켜주셔야죵

 

그리고 setbackgrounddrawable 없어졌다 해서 저도 읭 해서 직접 코딩해봤는데, 요새는 setBackground(Drawable d)로 사용하는거 같아요 ㅎ

1개의 답변

+1 추천
코드 맞게 작성하셨는데,
 
Xml에서 Button으로 작성하셨으면
 
java 코드에서 ImageView가 아닌
 
Button iv = (Button) findViewById(R.id.icon);
 
로 통일시켜주셔야죵
 
 
 
그리고 setbackgrounddrawable 없어졌다 해서 저도 읭 해서 직접 코딩해봤는데, 요새는 setBackground(Drawable d)로 사용하는거 같아요 ㅎ
Djleeee (13,180 포인트) 님이 2015년 3월 3일 답변
그렇게 고쳐봣는데도 그냥 회색 아무것도없는 버튼만 나오네요 ㅠㅠ 이게 우찌된일일까요...
아놔 ㅋㅋ 지금 제가 바로 테스팅해볼게요~!
정말정말 감사감사합니다 ㅠㅠㅎㅎ
저는 님 코드로 하니 잘만 되는데요???
public class MainActivity extends Activity {
    Drawable dw;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        Button iv = (Button) findViewById(R.id.icon);





        try {
            dw = this.getPackageManager().getApplicationIcon("com.android.contacts");
        } catch (PackageManager.NameNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }
        System.out.println("asdfasdf " + dw);

        iv.setBackgroundDrawable(dw);
    }
}

제가 작성한 코드인데,
System.out.println("asdfasdf " + dw);로 로그에 dw가 null이 아닌지 찍어보세요.
패키지 경로는 맞네요 ㅠㅠ 버튼레이아웃의 문제인지..ㅠㅠ
이유를 모르겟어요...
그래도 정말정말 감사합니다..!!
아니 저코드 사용해도 버튼 아무것도 안나오나요 ??
혹시 뉴 액티비티로 실행시킨거라면 xml에서 textview 기본적으로 샬정돼잇는거 지워버리시고 버튼만 남기고 해보세요. 텍스트뷰가 wrapcontent로 화면를 꽉 채우고 잇어서 버튼이 안보일수도잇어요
아!! 이유를 알았습니다 ㅠㅠ 위젯으로 띄우려고 하니까 안됫나봐요!!
새로 작성해서 어플에서 띄우니까 띄워지네요!! ㅠㅠ 위젯으로 띄우는건 더 찾아봐야 겟네요 ㅠㅠ
위젯으로띄우다뇨? 무슨 말씀이죠?
button도 widget아닌가요?
...