'Android'에 해당되는 글 4건
- 2010/07/17 The Player 예약 판매 중! (2)
- 2010/05/27 AppWidgetProvider의 RemoteViews안에 있는 TextView의 내용 marquee 시키기
- 2010/05/27 야근을 안하기 위한 팁 공유
2010/07/17 22:20 : from Android
2010/05/27 13:05 : from Android
일반적으로 TextView에 marguee 를 걸러줄려면 java 소스상에서 textView.setSelected(true);를 설정해야 정상 동작하나, RemoteView에서는 이렇게 할 수 없습니다.
하지만,
아래와 같이 xml상에서 <requestFocus/> 를 태그안에 넣어주면 똑같이 동작을 합니다. 이때 android:focusableInTouchMode="true" 를 같이 넣어줘야합니다.
<TextView android:id="@+id/current_condition"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:textSize="17sp"
android:text="so lon~~~~~~g texxt"
android:focusable="true"
android:singleLine="true"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever">
<requestFocus/>
</TextView>
한가지 문제접이 있습니다. 위젯이 포커스를 받았을때만 marquee가 적용됩니다. 다른 홈으로 갔다 돌아오면 글자가 흘러가지 않습니다.
지우사랑님의 해결책으로하면 이 문제도 없을 것이라고 생각합니다. 단, 원래 TextView를 고쳐야하지만...
자문자답의 일인자... ㅡ.ㅡ;;;고민고민하다가 TextView를 고쳐버렸습니다. 에고고...
어짜피 폰제조사에서 올리는 것이라서 문제는 없었습니다.
TextView.java 소스를 보면 isFocused, isSelected 로 Marquee를 작동시킬지 여부를 체크하는데, 이 두가지 요소를 제어할 수가 없어서 안되는 것이였습니다. 따라서 여기에 isMarqueeAlwaysEnable Method와 setMarqueeAlwaysEnable( boolean) Method를 추가해서 Marquee를 작동할 수 있게끔 처리하여 문제를 해결했습니다.
setMarqueeAlwaysEnable( boolean) Method 위에 @android.view.RemotableViewMethod 를 해줘야 RemoteViews에서 사용가능합니다.
자세한 소스는 알려드리지 못하는 것은 폰제조사 보안 문제 땜시롱 조심조심 하느라... 대충 이정도면 다른 분들도 이해 하셨으리라 생각됩니다...
2010/05/27 13:03 : from Android
코딩을 하다면면 별것 아닌것으로 한두시간, 심지어 하루 이틀을 헤메면서 보낼때가 있다. 그때 구글링을 통해 누군가 작성해둔 해결책을 보면 환호를 지르고 싶을 많큼 기쁘다.
지금까지는 귀찮아서 IT 포스팅은 안했지만, 다른 사람에게 많은 도움을 받았고, 나의 작은 팁이 다른 사람에게 도움이 되지 않을까 싶어서 안드로이드 팁 공유를 위한 포스팅을 시작하기로 했다. ㅅㅅ/
별다른 내용이 아닌 단지 팁!