listView 中textview 边缘字体淡化效果,导致滑动顿卡的问题


项目中有一个需求,在列表中的有一个一title 元素, 字体会很多,android 可以设置当字体显示不下的时候显示 "..." ,这个我知道,但是我需求这种效果我需求类似textView 跑马灯时 字体边缘的淡化效果。 于是我把列表中的Textview 写成了这样

   
  <TextView
  
android:id="@+id/grid_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingRight="5dip"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
style="@style/list_item_title"
/>

边缘的字体淡化是木有问题的了, 不带给我的伤害却不是我能承受的起的, 因为是一个listView列表,所有用户滑经常的滑动, 根据listView 视图缓存机制来分析。。。感觉每一行的Textview的都做好 准备要开始跑马准备,所有很卡了。
明确下需求, 我只需字体边缘的淡化效果,不需要跑马灯效果。
是不是有一个方法能够直接设置的,查了一遍api还是没找到。。求解

Android

超级无比D蛋疼 11 years, 11 months ago

(⊙o⊙)哦,自个儿琢磨了下。搞定了

   
  <TextView
  
android:id="@+id/grid_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingRight="5dip"
android:fadingEdge="horizontal"
android:fadingEdgeLength="10dip"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
style="@style/list_item_title"
/>

如果在需要在listView中使用到这个功能的朋友 千万不要写上这句

   
  android:ellipsize="marquee"
 

不然你的listView 将卡到你疯掉

鸡神坐上00 answered 11 years, 11 months ago

Your Answer