Android TV listview及焦点处理

 更新时间:2017年06月13日 15:30:50   作者:chenrunhua  
这篇文章主要介绍了Android TV listview及焦点处理的相关资料,需要的朋友可以参考下

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

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

相关文章

  • 简单实现Android验证码

    简单实现Android验证码

    在登录或者注册的时候要求输入验证码,这篇文章主要为大家详细介绍了如何简单实现Android验证码的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Android实现环信修改头像和昵称

    Android实现环信修改头像和昵称

    这篇文章主要为大家详细介绍了Android实现环信修改头像和昵称,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Android Flutter实现在多端运行的扫雷游戏

    Android Flutter实现在多端运行的扫雷游戏

    当我们回忆起小时候的经典电脑游戏,扫雷一定是其中之一。本文将通过Flutter实现一个能在多端运行的扫雷游戏,感兴趣的可以了解一下
    2023-03-03
  • Android  CardView详解及使用方法和实例

    Android CardView详解及使用方法和实例

    这篇文章主要介绍了Android CardView详解及使用方法和实例的相关资料,这里附有实例代码及实现效果图,需要的朋友可以参考下
    2016-12-12
  • Android彻底清除APP数据的两种方案总结

    Android彻底清除APP数据的两种方案总结

    大家在用Android手机的时候肯定都遇到过内存剩余空间越来越小的情况,所以下面这篇文章主要给大家介绍了关于Android彻底清除APP数据的两种方案,需要的朋友可以参考下
    2021-11-11
  • Android 编程下字库的使用及注意事项

    Android 编程下字库的使用及注意事项

    在安卓操作系统下对于 TextView 字体的支持非常有限,默认情况下TextView的typeface属性支持三种字体;接下来本文将会介绍Android 编程下字库的使用及注意事项,感兴趣的朋友可以了解下,希望对你有所帮助
    2013-01-01
  • 零基础学习教程之Linux下搭建android开发环境

    零基础学习教程之Linux下搭建android开发环境

    这篇文章主要介绍了Linux下搭建android开发环境,特别适合零基础的同学学习,想要在Linux及ubuntu11.10下配置android4.0.3开发环境的朋友可以参考一下
    2015-12-12
  • Android实现简单实用的垂直进度条

    Android实现简单实用的垂直进度条

    这篇文章主要为大家详细介绍了Android实现简单实用的垂直进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Android实现滑动标签页

    Android实现滑动标签页

    这篇文章主要为大家详细介绍了Android实现滑动标签页,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • android UI绘制加减号按钮

    android UI绘制加减号按钮

    这篇文章主要为大家详细介绍了android UI绘制加减号按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06

最新评论