2010-01-26 6 views
0

위젯이있는 앱이 있지만 위젯의 레이아웃에 약간의 어려움이 있습니다.Android 위젯 텍스트 배경

위젯이 아이콘처럼 보이고 바탕 화면에 다른 아이콘처럼 작은 텍스트 태그가 있어야한다는 기본적인 아이디어.

내가 안드로이드를 사용하는 하나의 예를 찾을 다음 텍스트 뷰에 대한 배경과 드로어 블 XML 사용 그러나이 훌륭하게 작동하지 않습니다

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
<solid android:color="#AA111111"/> 
<padding android:left="5dp" 
    android:right="5dp" 
    android:bottom="1dp" 
    android:top="1dp" /> 
<corners android:radius="8dp" /> 
</shape> 

를, 텍스트는 단지의 다른 아이콘과 동일하지 않습니다 바탕 화면과 텍스트의 일부를 회전시킬 때 텍스트가 잘립니다!

다음 문제는 위젯을 선택하는 것입니다. ImageButton을 아이콘으로 사용합니다. android : background가 투명한 이미지로 설정되었습니다. 위젯을 선택하면 이미지를 변경할 수있는 다른 drawable xml 파일을 사용하고 있습니다. 그러나 아이콘 주위의 사각형이 주황색으로 바뀌는 아이콘의 기본 동작을 선호합니다.

어떻게이 두 가지 효과를 얻을 수 있습니까? 앱에서 "읽지 않은 횟수"라는 앱이 내가 원하는 일을 정확히 수행하는 것처럼 가능하다는 것을 알고 있습니다.

<LinearLayout> 
    <ImageView/> 
    <TextView/> 
</LinearLayout> 

있는 LinearLayout의 배경이 <selector> 일명 StateListDrawable 다음과 같습니다

+0

이 답변에 동의하지 않습니다. 이 작업을 수행해서는 안됩니다. 그것은 여기에서 논의되었습니다 : [http://stackoverflow.com/questions/2651631/android-home-screen-widget-icon-label-style/2652961#2652961](http://stackoverflow.com/questions/2651631/) android-home-screen-widget-icon-label-style/2652961 # 2652961) –

답변

2

내가 좋아하는 일을 할 것입니다. 선택기는 투명한 배경을 지정하며 선택하면 오렌지색으로 변경됩니다.

LinearLayout은 사용자가 PendingIntent을 설정하는보기이기도하므로 사용자가보기의 아무 곳이나 클릭 할 수 있으며 onClick 이벤트로 등록됩니다.

레이아웃 문제는 홈 화면의 다른 아이콘처럼 보이게 이미지와 텍스트를 가져 오기 위해 레이아웃을 가지고 놀아야 할 것입니다. 나는 수평 중심의 ImageView를 그 아래에 수평 중심의 TextView와 함께 얻는 것이 어렵지 않을 것이라고 생각하고 홈 화면의 다른 아이콘처럼 보이게 할 때까지 이미지 크기와 텍스트 크기를 조정하면됩니다.

홈 화면의 가로보기로 전환 할 때 나타나는 문제는 가로 모드로 올바르게 표시되도록 레이아웃 XML 파일의 가로 버전을 제공해야합니다. 그 방법에 대해서는 내 대답 this question을 참조하십시오. 앱 위젯을 만들 때 일반적으로 세로보기를 완벽하게 보이게 한 다음 해당 레이아웃 파일을 레이아웃 - 랜드 디렉토리에 복사하고 풍경이 될 때까지 비틀기를 시작합니다.