2011-02-05 4 views
0


프로그래밍 방식으로 배경 이미지를 제어해야하는 AppWidget을 작성하고 있습니다. 또한 나는 [오버레이] 문자 메시지를 표시해야합니다. 나는 또한 사용자 상호 작용 ("클릭")에 반응해야합니다. 내 (이미 작동 중) 개념 증명은 다음과 같습니다 :배경 이미지가있는 AppWidget + 텍스트 + 클릭 (탭) 이벤트

a) 메인 레이아웃에 ImageButton이 있습니다.
b) onReceive()를 처리하는 사용자 정의 의도가 있습니다. 그런 다음 RemoteViews.setImageViewResource 메서드를 통해 배경 이미지를 변경합니다. 이것은 ImageButton에 텍스트를 설정하거나 설정할 수 없다는 점을 제외하고는 거의 잘 작동합니다.
c) a)를 Button으로 교체했습니다. 이제 Button에 텍스트를 쓸 수는 있지만, 배경 이미지를 바꿀 수있는 방법을 찾을 수 없습니다.

그래서 저는 기본적으로 루프를 고수하고 있습니다. 아직 appWidget에서 세 가지 목표를 모두 달성 할 수있는 방법을 찾지 못했습니다 : 이미지 + 클릭 가능 + 텍스트.

Android에 익숙하지 않아서 몇 가지 지침/경로를 요청합니다. 사전에
감사
페드로

답변

0

단계 # 1 : LinearLayout (또는 무엇이든)과 TextView와 레이아웃을 생성합니다.

단계 # 2 : (당신이 클릭 할 예정이다 것을 표시하지 않은 앱 위젯 위의 레이아웃을 사용하여 하나 또는 둘 모두에 LinearLayout에 당신의 배경은 TextView에서 텍스트, 그리고 클릭 PendingIntents 퍼팅).

3 단계 : 3 단계가 없습니다.

+0

감사합니다. @CommonsWare는 "... 하나 또는 둘 다 ..."라는 마법 문구를 사용합니다. TextViews에서도 약간의 실험을했지만, 여러 곳에서 PendingIntent를 설정할 수 있다는 사실을 간과했습니다. 이는 주로이 플랫폼에 대한 사고 방식의 문제 + 신참자였습니다. 건배, 페드로. – pfonseca

+0

현재 인 텐트를 제어하고 있지만 프로그래밍 방식으로 레이아웃의 배경을 변경할 수는 없습니다. 나는 이것에 대해 광범위하게 봤는데 가능하지 않은 것으로 보인다. 레이아웃이 여러 개 (각각 BGA 이미지)이며 가시성을 가장 깨끗한 옵션으로 설정하고 있습니까? 감사. – pfonseca

+0

@pfonseca :'setBackgroundColor()'와'setBackgroundResource()'를'RemoteViews'에서'setInt()'를 통해 호출 할 수 있습니다. 그 외에도, 가장 쉬운 솔루션은 배경 당 별도의 레이아웃 파일이며, 'RemoteViews'를 만들 때 올바른 레이아웃 파일을 선택하는 것입니다. 할 수있어 – CommonsWare

관련 문제