AndroID TV ListvIEw及焦点处理
AndroID TV上的ListvIEw ,因为没有touch事件,只能通过按键处理,因此,用到ListvIEw时需要特殊处理:
1.复杂的vIEw需要获取焦点,需要设置:
setItemsCanFocus(true)
同时需要设置下能获取焦点vIEw的属性:
androID:focusable="true
这样子级vIEw就可以获取获取焦点。
2.vIEw中需要获取焦点需要高亮框效果,可以在vIEw画外框:
package com.cn21.ecloud.tv.ui.Widget; import androID.content.Context; import androID.graphics.Canvas; import androID.graphics.Rect; import androID.graphics.drawable.Drawable; import androID.util.AttributeSet; import androID.Widget.relativeLayout; public class SelectedrelativeLayout extends relativeLayout{ private Drawable mfloatDrawable; private Rect mTempRect = new Rect(); public SelectedrelativeLayout(Context context) { this(context,null,0); } public SelectedrelativeLayout(Context context,AttributeSet attrs) { this(context,attrs,AttributeSet attrs,int defStyleAttr) { super(context,defStyleAttr); mfloatDrawable = getResources().getDrawable(R.drawable.item_float_rectangle); } @OverrIDe protected voID dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); if (hasFocus()) { if (mfloatDrawable != null) { final int w = getMeasureDWIDth(); final int h = getMeasuredHeight(); mfloatDrawable.getpadding(mTempRect); mfloatDrawable.setBounds(-mTempRect.left,-mTempRect.top,w + mTempRect.right,h + mTempRect.bottom); mfloatDrawable.draw(canvas); } } } }
布局中直接使用这个vIEw
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的Android TV listview及焦点处理全部内容,希望文章能够帮你解决Android TV listview及焦点处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)