android tv 开发的列表条目在获得焦点时的背景效果

来源:互联网 发布:评价网络调查的方法 编辑:程序博客网 时间:2024/05/17 22:13


项目要做一个列表,给出的条目获得焦点时的图片是这样的,看这个图片,边框发光的效果范围超大,如果按正常的做法,要使条目中文字显示正常,就要把每个item的高度设为很高,这样显然不适合要求,让设计师将焦点图片的发光范围改小,效果也可能达不好之前设计的效果,这个设计师怎么就非要设置这们的效果呢 ?结果研究半天只能有下面这勉强可行方法


1 , 之前是要ListView实现的,现在改用GridView来实现:主要是在ListView基础上加两个属性:android:numColumns="1"  

   android:verticalSpacing="@dimen/grid_view_v_spacing"    因为用ListView实现不了  其中grid_view_v_spacing根据实际情况设置负值如:

  <dimen name="grid_view_v_spacing">-180px</dimen>

这样能够达到效果,条目比较少时没有问题,但问题是:如果条目比较多超出了屏幕时,第一个条目和第二这条目之间切换时看起来整个GrivView与它上面的内容间距会有变化,所以效果还是不理想,我想这个通过研究与重写GridView有可能解决这个问题。但是脑细胞是价的,所以暂时放下不管。

  <GridView        android:id="@+id/common_setting_listview"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginLeft="@dimen/setting_content_margin_left"        android:layout_marginRight="@dimen/setting_content_margin_left"        android:layout_marginBottom="@dimen/setting_content_margin_bottom"        android:cacheColorHint="@null"        android:clipToPadding="false"        android:divider="@null"        android:drawSelectorOnTop="true"        android:fastScrollEnabled="false"        android:listSelector="#00000000"        android:numColumns="1"        android:overScrollMode="never"        android:scrollbarStyle="outsideOverlay"        android:scrollbars="none"        android:scrollingCache="false"        android:verticalSpacing="@dimen/grid_view_v_spacing" />


2. 如果是界面固定,不是有的GridView,我们可以设置 相关控件的  layout_marginTop为负值

 <LinearLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:orientation="vertical"  >            <com.tv.settings.model.SettingItemView                android:id="@+id/item_sencence_mode"                android:layout_width="match_parent"                android:layout_height="match_parent"                android:focusable="true"/>                        <com.tv.settings.model.SettingItemView                android:id="@+id/item_skip"                android:layout_width="match_parent"                android:layout_height="match_parent"                android:layout_marginTop="-180px"                android:nextFocusUp="@id/item_sencence_mode"                android:focusable="true" />                    </LinearLayout>


3.如果要求焦点要有移动效果,那么前面的方法就无效了,因此就得研究现在电视或盒的做法,猜测是在界面为焦点加一个控件做为焦点,用坐标来控制移动。这个没有去研究,看起是要花一些时间的。找到一个可供参考的demo:http://blog.csdn.net/yangyong915/article/details/44097251

0 0
原创粉丝点击