首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android TV 焦点控制

Android TV 焦点控制 电视上都是通过控件获取焦点来实现点击效果的 android:focusable="true"//布局文件中设置一个控件能否获得焦点 android:setFocusableInTouchMode...="true"//这个是触摸是否能获得焦点,因为有的TV要求遥控 器和触摸都可以用,这时会用到 android:focusedByDefault="true"//设置默认焦点 低版本用不了,不过可以用...requestFocus()强制获取焦点 这个属性只能在API 26 或者更高版本中使用,如果你的最低版本低于26则会报错 android:defaultFocusHighlightEnabled="...在已知控件ID的情况下我们可以设置上下左右的移动控件, android:nextFocusUp="@id/tv_test"//当按上键时,下一个获得焦点的控件为tv_test android:...下一个获得焦点的控件为tv_test android:nextFocusRight="@id/tv_test"//当按右键时,下一个获得焦点的控件为tv_test 代码中: btnTest.setNextFocusUpId

2.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

笔记59 | Android管理音频焦点的学习

为了防止多个音乐播放应用同时播放音频,Android使用音频焦点(Audio Focus)来控制音频的播放——即只有获取到音频焦点的应用才能够播放音频。...在我们的应用开始播放音频之前,它需要先请求音频焦点,然后再获取到音频焦点。另外,它还需要知道如何监听失去音频焦点的事件并对此做出合适的响应。...如果有另一个应用像上述那样请求音频焦点,它所请求的永久音频焦点或者短暂音频焦点(支持Ducking或不支持Ducking),都会被你在请求获取音频焦点时所注册的监听器接收到。...处理失去音频焦点(Handle the Loss of Audio Focus) 如果应用A请求获取了音频焦点,那么在应用B请求获取音频焦点的时候,A获取到的焦点就会失去。...如何响应失去焦点事件,取决于失去焦点的方式。 在音频焦点的监听器里面,当接受到描述焦点改变的事件时会触发onAudioFocusChange()回调方法。

1.9K90

实测Android音频的焦点获取和归还

实测Android音频的焦点获取和归还 前言 最近老板想在产品中的短视频后者直播播放的时候对于手机中的音乐播放器进行暂停播放,并且退出视频播放后手机的音乐播放器还能继续播放之前的音乐。...Android官网:管理音频焦点 官网管理音频焦点准则: 在即将开始播放之前调用 requestAudioFocus(),并验证调用是否返回 AUDIOFOCUS_REQUEST_GRANTED。...在其他应用获得音频焦点时,停止或暂停播放,或降低音量。 播放停止后,放弃音频焦点。...不同版本音频焦点的处理方式不太相同: 从 Android 2.2(API 级别 8)开始,应用通过调用 requestAudioFocus() 和 abandonAudioFocus() 来管理音频焦点...版本 8.0 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {

3.3K30

Android TV 焦点框移动的实现方法

Tv开发,最重要的当然是焦点框的移动,有了焦点框我们才能知道当前选中的是哪一个,我们来看下效果图: ? 那它是怎么实现的呢,我们一起来看下。...原理 布局上使用一个view,背景是.9图片做焦点框,选中一个控件的时候把这个view移动选中的控件的位置。怎么样,是不是很简单,行动起来。先看下布局 codeing 布局: <?...@drawable/settings_selector" android:visibility="gone" / </FrameLayout 最底下的View就是我们要用到的焦点框 代码...FrameLayout frameLayout2=findViewById(Layout2); onFousView = findViewById(R.id.id_focus); //设置焦点变化监听...View v, boolean hasFocus) { if (hasFocus){ Log.i(TAG,"onFocusChange"+v.getId()); //设置焦点框的位置和动画

1.4K10

Android TV 开发】焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设备上的兼容问题 | 触摸获取焦点 | 按键获取焦点 )

Android TV 开发系列文章目录 【Android TV 开发】安卓电视调试 ( 开启网络远程调试 ) 【Android TV 开发】焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设备上的兼容问题...| 触摸获取焦点 | 按键获取焦点 ) 文章目录 Android TV 开发系列文章目录 一、父容器与子组件焦点获取关系处理 二、不同电视设备上的兼容问题 三、按键获取焦点 四、触摸获取焦点 一、父容器与子组件焦点获取关系处理...属性 ; 三、按键获取焦点 ---- 按键获取焦点 : 在手机上按键获取焦点已经不常用 , 使用遥控器 / 手柄 控制界面需要关注该操作 ; 在 xml 布局文件中 , 在组件节点上设置如下属性 ,..., 控制焦点改变 ; 如果该 android:focusable 属性设置为 true , 则说明该组件可以获取焦点 , 按照不同的方向按键 , 焦点跳转到本组件设定的对应方向上的件 id 对应的组件...; 四、触摸获取焦点 ---- 触摸获取焦点 : 目前的触摸屏手机控制焦点的主流操作 ; 在 xml 布局文件中 , 在组件节点上设置如下属性 , 取值 true 或 false ; android:

3K40

Android中的视图焦点Focus的详细介绍

在早期具有滚轮设备的android系统中以及现在的智能TV电视应用中视图的焦点控制就非常重要了。...而这些所有的东西都是和视图的焦点有关,因此本文的重点就是介绍视图的焦点属性和方法,get到这些技术点后你就可以完全控制和使用这些特性了。...ViewGroup没有焦点并不代表其子视图也没有焦点,这里没有父子制约关系。 任何时候一个窗口内都只有一个视图具有焦点,或者所有视图都无焦点。 并不是所有视图都可以获取焦点。...下面两个方法用来判断某个视图是否是焦点视图以及是否获取了焦点: //是否当前视图就是焦点视图 public boolean isFocused() //当前视图是否是焦点视图,或者子视图里面有焦点视图...下面的函数用来查找具有焦点的视图,如果是View则判断自己是否有焦点,如果是ViewGroup则自己就是焦点返回自己,否则返回儿子视图里面的焦点视图。

2.3K20

Android EditText 获得输入焦点 以及requestfocus()失效的问题

最近做公司项目的时候,经常会遇到一个问题,就是我为某个控件如EditText设置requestfocus()的时候不管用,比如说登陆的时候,我判断下用户输入的密码,如果正确就登陆,错误就提示密码错误,并且输入框获取焦点...,但是实际中确不起作用 package com.example.hfs.requestfocusdemo; import android.content.Intent; import android.support.v7....app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button...; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity...this,"登陆成功",Toast.LENGTH_SHORT).show(); finish(); } } } 原因 查资料分析了一下,可能是以下问题:  Android

2.9K60

从源码出发浅析 Android TV 的焦点移动原理 (上篇)

焦点焦点(Focus)可以理解为选中态,在Android TV上起很重要的作用。一个视图控件只有在获得焦点的状态下,才能响应按键的Click事件。...相对于手机上用手指点击屏幕产生的Click事件, 在使用Android TV的过程中,遥控器是一个主流的操作工具,通过点击遥控器的方向键来控制焦点的移动。...android:focusable="true" android:focusableInTouchMode="true"/> 然后,就是控制焦点的移动了。...遇到的问题: 尽管有了官方文档中提到的基础用法,但是在进行Android TV开发的过程中,还是经常会遇到一些焦点方面的问题或者疑问,如 “明明指定了焦点id,焦点却跑丢了” “onKeyDown里居然截获不到按键事件...接《从源码出发浅析Android TV的焦点移动原理(下篇)》

7.2K10

从源码出发浅析 Android TV 的焦点移动原理(下篇)

接从源码出发浅析 Android TV 的焦点移动原理 (上篇) 2.2 findNextFocus 如果开发者没有指定nextFocusId,则用findNextFocus找指定方向上最近的视图 看一下这里的用法...至此,就找到了下一个焦点视图,然后调用requestFocus方法,让其获得焦点。...小结 经过对源码的分析,系统本身寻找下一个焦点视图的过程是: 首先寻找用户指定了id的视图,从当前焦点视图的节点开始遍历,直到找到匹配该id的视图。...指定nextFocusId 系统自动从所有isFocusable的视图中找下一个焦点视图 以上任一处都可以指定焦点,一旦使用了就不再往下走。...本文从源码的角度分析了焦点的移动原理,如果大家有兴趣可以一起多多交流。

3.3K10
领券