当前位置: 移动技术网 > IT编程>移动开发>Android > Android TV listview及焦点处理

Android TV listview及焦点处理

2019年07月24日  | 移动技术网IT编程  | 我要评论

谢灵教授,张柏芝不雅视频全集,潮安县邮编

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, 0); 
  } 
 
  public selectedrelativelayout(context context, attributeset attrs, int defstyleattr) { 
    super(context, attrs, 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

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网