Most visited

Recently visited

Added in API level 21

TvView

public class TvView
extends ViewGroup

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.media.tv.TvView


显示电视内容。 TvView类为应用程序提供了一个高级界面,用于显示实现TvInputService各种电视来源的电视节目。 (请注意,系统中可用的电视输入列表可通过拨打TvInputManager.getTvInputList()获得。)

一旦应用程序提供的URI的特定电视频道tune(String, Uri)方法,它负责底层服务绑定的(和解除绑定如果当前TvView已经被绑定到服务)和自动分配/解除分配所需资源。 除了一些控制内容呈现方式的基本方法之外,它还提供了一种将输入事件分配给所连接的TvInputService以便为电视输入启用自定义按键操作的方法。

Summary

Nested classes

interface TvView.OnUnhandledInputEventListener

接收未处理的输入事件时要调用的回调的接口定义。

class TvView.TimeShiftPositionCallback

回叫用于接收时间转换位置的变化。

class TvView.TvInputCallback

回拨用于在TvView上接收各种状态更新。

Inherited XML attributes

From class android.view.ViewGroup
From class android.view.View

Inherited constants

From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

TvView(Context context)
TvView(Context context, AttributeSet attrs)
TvView(Context context, AttributeSet attrs, int defStyleAttr)

Public methods

boolean dispatchGenericMotionEvent(MotionEvent event)

派遣一般运动事件。

boolean dispatchKeyEvent(KeyEvent event)

将关键事件分派到焦点路径上的下一个视图。

boolean dispatchTouchEvent(MotionEvent event)

将触摸屏动作事件向下传递给目标视图,或者将此视图作为目标。

boolean dispatchTrackballEvent(MotionEvent event)

将轨迹球运动事件传递给焦点视图。

boolean dispatchUnhandledInputEvent(InputEvent event)

将未处理的输入事件分派给下一个接收者。

void dispatchWindowFocusChanged(boolean hasFocus)

当包含此视图的窗口获得或失去窗口焦点时调用。

void draw(Canvas canvas)

手动将此视图(及其所有子项)呈现给定的Canvas。

boolean gatherTransparentRegion(Region region)

当视图层次结构包含一个或多个SurfaceView时,RootView将使用它来执行优化。

String getSelectedTrack(int type)

返回给定类型的选定曲目的ID。

List<TvTrackInfo> getTracks(int type)

返回曲目列表。

boolean onUnhandledInputEvent(InputEvent event)

当未处理的输入事件还没有被用户提供的回调处理时调用。

void reset()

重置此TvView。

void selectTrack(int type, String trackId)

选择一首曲目。

void sendAppPrivateCommand(String action, Bundle data)

发送一个私人命令到底层的电视输入。

void setCallback(TvView.TvInputCallback callback)

设置将事件分派给此TvView时要调用的回调。

void setCaptionEnabled(boolean enabled)

启用或禁用此TvView中的标题。

void setOnUnhandledInputEventListener(TvView.OnUnhandledInputEventListener listener)

当输入事件未被绑定的电视输入处理时,注册要调用的回调。

void setStreamVolume(float volume)

设置此TvView的相对流量。

void setTimeShiftPositionCallback(TvView.TimeShiftPositionCallback callback)

设置时间位置更改时要调用的回调。

void setZOrderMediaOverlay(boolean isMediaOverlay)

控制TvView的曲面是否放置在窗口中另一个常规曲面视图的顶部(但仍在窗口本身之后)。

void setZOrderOnTop(boolean onTop)

控制TvView的表面是否放置在窗口的顶部。

void timeShiftPause()

暂停播放。

void timeShiftPlay(String inputId, Uri recordedProgramUri)

播放特定录制的电视节目。

void timeShiftResume()

继续播放。

void timeShiftSeekTo(long timeMs)

寻找到指定的时间位置。

void timeShiftSetPlaybackParams(PlaybackParams params)

使用 PlaybackParams设置播放速率。

void tune(String inputId, Uri channelUri, Bundle params)

调谐到指定的频道。

void tune(String inputId, Uri channelUri)

调谐到指定的频道。

Protected methods

void dispatchDraw(Canvas canvas)

通过绘制来绘制子视图。

void onAttachedToWindow()

这在视图附加到窗口时被调用。

void onDetachedFromWindow()

这是在视图从窗口分离时调用的。

void onLayout(boolean changed, int left, int top, int right, int bottom)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

void onVisibilityChanged(View changedView, int visibility)

当视图的可见性或视图的祖先已更改时调用。

Inherited methods

From class android.view.ViewGroup
From class android.view.View
From class java.lang.Object
From interface android.view.ViewParent
From interface android.view.ViewManager
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

Public constructors

TvView

Added in API level 21
TvView (Context context)

Parameters
context Context

TvView

Added in API level 21
TvView (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

TvView

Added in API level 21
TvView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

Public methods

dispatchGenericMotionEvent

Added in API level 21
boolean dispatchGenericMotionEvent (MotionEvent event)

派遣一般运动事件。

具有源类SOURCE_CLASS_POINTER通用运动事件被传递到指针下的视图。 所有其他通用运动事件都会传送到重点视图。 悬停事件专门处理,并交付给onHoverEvent(MotionEvent)

Parameters
event MotionEvent: The motion event to be dispatched.
Returns
boolean True if the event was handled by the view, false otherwise.

dispatchKeyEvent

Added in API level 21
boolean dispatchKeyEvent (KeyEvent event)

将关键事件分派到焦点路径上的下一个视图。 此路径从视图树的顶部向下延伸到当前聚焦的视图。 如果这个观点有重点,它会发送给自己。 否则,它将沿着焦点路径调度下一个节点。 这个方法也会触发任何关键的监听器。

Parameters
event KeyEvent: The key event to be dispatched.
Returns
boolean True if the event was handled, false otherwise.

dispatchTouchEvent

Added in API level 21
boolean dispatchTouchEvent (MotionEvent event)

将触摸屏动作事件向下传递给目标视图,或者将此视图作为目标。

Parameters
event MotionEvent: The motion event to be dispatched.
Returns
boolean True if the event was handled by the view, false otherwise.

dispatchTrackballEvent

Added in API level 21
boolean dispatchTrackballEvent (MotionEvent event)

将轨迹球运动事件传递给焦点视图。

Parameters
event MotionEvent: The motion event to be dispatched.
Returns
boolean True if the event was handled by the view, false otherwise.

dispatchUnhandledInputEvent

Added in API level 21
boolean dispatchUnhandledInputEvent (InputEvent event)

将未处理的输入事件分派给下一个接收者。

除系统键外,TvView总是消耗正常流程中的输入事件。 这是从调度事件的地方异步调用的。 它使主机应用程序有机会分派未处理的输入事件。

Parameters
event InputEvent: The input event.
Returns
boolean true if the event was handled by the view, false otherwise.

dispatchWindowFocusChanged

Added in API level 21
void dispatchWindowFocusChanged (boolean hasFocus)

当包含此视图的窗口获得或失去窗口焦点时调用。 ViewGroups应该覆盖路由到他们的孩子。

Parameters
hasFocus boolean: True if the window containing this view now has focus, false otherwise.

draw

Added in API level 21
void draw (Canvas canvas)

手动将此视图(及其所有子项)呈现给定的Canvas。 在调用这个函数之前,视图必须已经完成了一个完整的布局。 在实现视图时,实现onDraw(android.graphics.Canvas)而不是重写此方法。 如果您确实需要重写此方法,请调用超类版本。

Parameters
canvas Canvas: The Canvas to which the View is rendered.

gatherTransparentRegion

Added in API level 21
boolean gatherTransparentRegion (Region region)

当视图层次结构包含一个或多个SurfaceView时,RootView将使用它来执行优化。 SurfaceView始终被认为是透明的,但它的子项不是,因此所有View对象都从全局透明区域中移除(作为参数传递给此函数)。

Parameters
region Region: The transparent region for this ViewAncestor (window).
Returns
boolean Returns true if the effective visibility of the view at this point is opaque, regardless of the transparent region; returns false if it is possible for underlying windows to be seen behind the view.

getSelectedTrack

Added in API level 21
String getSelectedTrack (int type)

返回给定类型的选定曲目的ID。 如果信息不可用或没有选择曲目,则返回null

Parameters
type int: The type of the selected tracks. The type can be TYPE_AUDIO, TYPE_VIDEO or TYPE_SUBTITLE.
Returns
String

也可以看看:

getTracks

Added in API level 21
List<TvTrackInfo> getTracks (int type)

返回曲目列表。 如果信息不可用,则返回null

Parameters
type int: The type of the tracks. The type can be TYPE_AUDIO, TYPE_VIDEO or TYPE_SUBTITLE.
Returns
List<TvTrackInfo>

也可以看看:

onUnhandledInputEvent

Added in API level 21
boolean onUnhandledInputEvent (InputEvent event)

当未处理的输入事件还没有被用户提供的回调处理时调用。 这是处理TvView中未处理输入事件的最后机会。

Parameters
event InputEvent: The input event.
Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

reset

Added in API level 21
void reset ()

重置此TvView。

此方法主要用于取消当前TvView的调整。

selectTrack

Added in API level 21
void selectTrack (int type, 
                String trackId)

选择一首曲目。

Parameters
type int: The type of the track to select. The type can be TYPE_AUDIO, TYPE_VIDEO or TYPE_SUBTITLE.
trackId String: The ID of the track to select. null means to unselect the current track for a given type.

也可以看看:

sendAppPrivateCommand

Added in API level 24
void sendAppPrivateCommand (String action, 
                Bundle data)

发送一个私人命令到底层的电视输入。 这可用于提供特定于域的功能,这些功能仅在特定客户端与其电视输入之间才可识别。

Parameters
action String: The name of the private command to send. This must be a scoped name, i.e. prefixed with a package name you own, so that different developers will not create conflicting commands.
data Bundle: An optional bundle to send with the command.

setCallback

Added in API level 21
void setCallback (TvView.TvInputCallback callback)

设置将事件分派给此TvView时要调用的回调。

Parameters
callback TvView.TvInputCallback: The callback to receive events. A value of null removes the existing callback.

setCaptionEnabled

Added in API level 21
void setCaptionEnabled (boolean enabled)

启用或禁用此TvView中的标题。

请注意,除非调整当前的TvView,否则此方法不会产生任何效果。

Parameters
enabled boolean: true to enable, false to disable.

setOnUnhandledInputEventListener

Added in API level 21
void setOnUnhandledInputEventListener (TvView.OnUnhandledInputEventListener listener)

当输入事件未被绑定的电视输入处理时,注册要调用的回调。

Parameters
listener TvView.OnUnhandledInputEventListener: The callback to be invoked when the unhandled input event is received.

setStreamVolume

Added in API level 21
void setStreamVolume (float volume)

设置此TvView的相对流量。

此方法主要用于处理音频焦点更改或在显示多个视图时静音特定的TvView。 如果尚未调用该方法,则TvView将采用默认值1.0f

Parameters
volume float: A volume value between 0.0f to 1.0f.

setTimeShiftPositionCallback

Added in API level 23
void setTimeShiftPositionCallback (TvView.TimeShiftPositionCallback callback)

设置时间位置更改时要调用的回调。

Parameters
callback TvView.TimeShiftPositionCallback: The callback to receive time shift position changes. A value of null removes the existing callback.

setZOrderMediaOverlay

Added in API level 24
void setZOrderMediaOverlay (boolean isMediaOverlay)

控制TvView的曲面是否放置在窗口中另一个常规曲面视图的顶部(但仍在窗口本身之后)。 这通常用于在底层TvView顶部放置叠加层。

请注意,这必须在TvView的包含窗口连接到窗口管理器之前设置。

调用此 setZOrderOnTop(boolean)覆盖之前的任何呼叫 setZOrderOnTop(boolean)

Parameters
isMediaOverlay boolean: true to be on top of another regular surface, false otherwise.

setZOrderOnTop

Added in API level 24
void setZOrderOnTop (boolean onTop)

控制TvView的表面是否放置在窗口的顶部。 通常它被放置在窗口后面,允许它(大部分)看起来与层次结构中的视图合成。 通过设置它,可以将它放置在窗口上方。 这意味着这个TvView窗口的内容都不会在其表面上可见。

请注意,这必须在TvView的包含窗口连接到窗口管理器之前设置。

调用此 setZOrderMediaOverlay(boolean)覆盖以前的任何呼叫至 setZOrderMediaOverlay(boolean)

Parameters
onTop boolean: true to be on top of its window, false otherwise.

timeShiftPause

Added in API level 23
void timeShiftPause ()

暂停播放。 如果它已经暂停,则无操作。 致电timeShiftResume()恢复。

timeShiftPlay

Added in API level 24
void timeShiftPlay (String inputId, 
                Uri recordedProgramUri)

播放特定录制的电视节目。

Parameters
inputId String: The ID of the TV input that created the given recorded program.
recordedProgramUri Uri: The URI of a recorded program.

timeShiftResume

Added in API level 23
void timeShiftResume ()

继续播放。 如果它已经恢复,则不运行。 拨打timeShiftPause()暂停。

timeShiftSeekTo

Added in API level 23
void timeShiftSeekTo (long timeMs)

寻找到指定的时间位置。 timeMs必须等于或大于由onTimeShiftStartPositionChanged(String, long)返回的开始位置并且等于或小于当前时间。

Parameters
timeMs long: The time position to seek to, in milliseconds since the epoch.

timeShiftSetPlaybackParams

Added in API level 23
void timeShiftSetPlaybackParams (PlaybackParams params)

使用 PlaybackParams设置播放速率。

Parameters
params PlaybackParams: The playback params.

tune

Added in API level 24
void tune (String inputId, 
                Uri channelUri, 
                Bundle params)

调谐到指定的频道。 这可用于提供特定于域的功能,这些功能仅在特定客户端与其电视输入之间才可识别。

Parameters
inputId String: The ID of TV input for the given channel.
channelUri Uri: The URI of a channel.
params Bundle: Domain-specific data for this tune request. Keys must be a scoped name, i.e. prefixed with a package name you own, so that different developers will not create conflicting keys.

tune

Added in API level 21
void tune (String inputId, 
                Uri channelUri)

调谐到指定的频道。

Parameters
inputId String: The ID of the TV input for the given channel.
channelUri Uri: The URI of a channel.

Protected methods

dispatchDraw

Added in API level 21
void dispatchDraw (Canvas canvas)

通过绘制来绘制子视图。 这可能会被派生类重写,以便在子对象被绘制之前获得控制权(但在绘制自己的视图之后)。

Parameters
canvas Canvas: the canvas on which to draw the view

onAttachedToWindow

Added in API level 21
void onAttachedToWindow ()

这在视图附加到窗口时被调用。 此时它有一个Surface并将开始绘制。 注意这个函数保证在onDraw(android.graphics.Canvas)之前被调用,但是它可以在第一个onDraw之前的任何时候调用 - 包括在onMeasure(int, int)之前或之后。

onDetachedFromWindow

Added in API level 21
void onDetachedFromWindow ()

这是在视图从窗口分离时调用的。 此时它不再有绘图表面。

onLayout

Added in API level 21
void onLayout (boolean changed, 
                int left, 
                int top, 
                int right, 
                int bottom)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。 带孩子的派生类应该覆盖这个方法,并调用他们每个孩子的布局。

Parameters
changed boolean: This is a new size or position for this view
left int: Left position, relative to parent
top int: Top position, relative to parent
right int: Right position, relative to parent
bottom int: Bottom position, relative to parent

onMeasure

Added in API level 21
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用, measure(int, int)子类覆盖以提供其内容的准确和有效的度量。

合同:覆盖此方法时, 必须调用setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 如果不这样做,则会触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一种有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应该覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()getSuggestedMinimumWidth() )。

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

onVisibilityChanged

Added in API level 21
void onVisibilityChanged (View changedView, 
                int visibility)

当视图的可见性或视图的祖先已更改时调用。

Parameters
changedView View: The view whose visibility changed. May be this or an ancestor view.
visibility int: The new visibility, one of VISIBLE, INVISIBLE or GONE.

Hooray!