Android电视列表视图及焦点处理

  

Android电视列表视图及焦点处理

  

Android电视上的列表视图,因为没有联系事件,只能通过按键处理,因此,用到listview时需要特殊处理:

  

<强> 1。复杂的观点需要获取焦点,需要设置:

        setItemsCanFocus(真正的)      

同时需要设置下能获取焦点视图的属性:

        android: focusable=" true      

这样子级视图就可以获取获取焦点。

  

<强> 2.视图中需要获取焦点需要高亮框效果,可以在视图画外框:

        包com.cn21.ecloud.tv.ui.widget;      进口android.content.Context;   进口android.graphics.Canvas;   进口android.graphics.Rect;   进口android.graphics.drawable.Drawable;   进口android.util.AttributeSet;   进口android.widget.RelativeLayout;      公开课SelectedRelativeLayout RelativeLayout{延伸   私人可拉的mFloatDrawable;   私人矩形mTempRect=new矩形();      公共SelectedRelativeLayout(上下文语境){   这(上下文,null, 0);   }      公共SelectedRelativeLayout(上下文语境,AttributeSet attrs) {   这(上下文、attrs 0);   }      公共SelectedRelativeLayout(上下文语境、AttributeSet attrs int defStyleAttr) {   超级(上下文、attrs defStyleAttr);   mFloatDrawable=getresource () .getDrawable (R.drawable.item_float_rectangle);   }      @Override   保护无效dispatchDraw(帆布画布){   super.dispatchDraw(画布);   如果(hasFocus ()) {   如果(mFloatDrawable !=null) {   最后一个int w=getMeasuredWidth ();   最后一个int h=getMeasuredHeight ();   mFloatDrawable.getPadding (mTempRect);   mFloatDrawable.setBounds (-mTempRect。左,-mTempRect.top,   w + mTempRect。对的,h + mTempRect.bottom);   mFloatDrawable.draw(画布);   }   }   }   }   之前      

布局中直接使用这个视图
  

  

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Android电视列表视图及焦点处理