智能电视(电视盒子)开发基础教程

为了解决 各种盒子兼容问题,各种屏幕的分辨率问题,楼主推荐一个 电视开发的sdk ,非常好用

下载

命令行: git clone https://github.com/boxmate/tvframe.git  

或者  

打开https://github.com/boxmate/tvframe,右下角
Download Zip

下载文件中有两个目录

        frametv/ 为框架工程源码
        framedemo/ 为DEMO示例工程.
    

    导入:

    一、下载完成后,同平常方式导入两个项目,即:File -> Import -> Android -> Existing Projects Into Workspace;
    得到两个工程

        RecoTvFrame  框架
        RecoTvFrameDemo   demo
    

    二、将RecoTvFrame添加为Library

        1.选中RecoTvFrame框架工程 右键,点击最下方的Properties
        2.点击左侧的Android选项,勾选右下方的 Is Library
        3.点确认
    

    三、引入RecoTvFrame

        我们以demo工程为例
        1.在demo工程上右键,点击最下方的Properties
        2.点击左侧的Android选项,点击右方的 Add
        3.选中RecoTvFrame 添加,完成导入操作
    

    四、处理android-support-v4.jar冲突

        1.请先移除你自己的项目中的V4包(libs/ 目录中),然后复制框架 libs/ 目录中V4包到你自己的工程对应目录中,
        2.选中V4包右键Build Path -> Add To Build Path
    

    五、运行Demo工程(或者你自己的工程)

楼主用这个sdk 开发了一个 helloword

非常简单

代码如下

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools/"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px100"
        android:layout_marginTop="@dimen/px200"
        android:background="#ff0000"
        android:text="H"
        />
    <reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px210"
        android:layout_marginTop="@dimen/px200"
        android:background="#ff0000"
        android:text="E"
        />
    <reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px320"
        android:layout_marginTop="@dimen/px200"
        android:background="#ff0000"
        android:text="L"
        />
    <reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px430"
        android:layout_marginTop="@dimen/px200"
        android:background="#ff0000"
        android:text="L"
        />
	<reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px540"
        android:layout_marginTop="@dimen/px200"
        android:background="#ff0000"
        android:text="O"
        />

	<reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px100"
        android:layout_marginTop="@dimen/px400"
        android:background="#00ff00"
        android:text="W"
        />
    <reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px210"
        android:layout_marginTop="@dimen/px400"
        android:background="#00ff00"
        android:text="O"
        />
    <reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px320"
        android:layout_marginTop="@dimen/px400"
        android:background="#00ff00"
        android:text="R"
        />
    <reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px430"
        android:layout_marginTop="@dimen/px400"
        android:background="#00ff00"
        android:text="L"
        />
	<reco.frame.tv.view.TvButton
        android:layout_width="@dimen/px100"
        android:layout_height="@dimen/px100"
        android:layout_marginLeft="@dimen/px540"
        android:layout_marginTop="@dimen/px400"
        android:background="#00ff00"
        android:text="D"
        />

</RelativeLayout>

就是简单的一个activity ,然后用sdk中的  tvbutton控件

然后是个焦点放大效果,

sdk的demo中有很多的 案例,大家可以下来一个一个研究一下,基本上开发一个电视应用就没什么大问题了

框架官方主页:点击打开链接

时间: 2024-10-25 11:06:01

智能电视(电视盒子)开发基础教程的相关文章

iOS 9音频应用开发基础教程

iOS 9音频应用开发基础教程(大学霸内部资料) 介绍:iOS 9音频应用开发基础教程(内部资料)是iOS 9音频应用开发专向教程.本书采用Swift 2.0语言开发基于iOS 9的音频应用.实现的功能不仅包括音频播放和录音等基本功能,还包括播放列表.歌词功能.流媒体音乐.均衡器.可视化效果.文本朗读等高级功能. 学习建议:学习本教程内容,需要掌握Swift语言基础和iOS开发基础.如果不具备这两方面,建议用户阅读本店的以下教程: Swift语言快速入门 iOS 9应用开发基础教程 试读文档下载

Unity2D游戏开发基础教程1.2 项目、资源和场景

Unity2D游戏开发基础教程1.2 项目.资源和场景 如果使用Unity制作游戏,就一定会接触到项目(Project.资源(Asset)和场景(Scene).本节将依次介绍它们. 1.2.1项目 Unity是一个基于项目的应用.这就意味着每开发一个新游戏,都要创建一个新项目.一个项目就代表一个游戏,不管游戏是2D还是3D的.开发人员可以把项目当做容器,它包含了开发游戏时,自动生成还有引入的所有文件.本文选自<Unity2D游戏开发基础教程大学霸> 要在Unity里创建一个新项目,可以单击Fi

AndoridSQLite数据库开发基础教程(10)

AndoridSQLite数据库开发基础教程(10) 添加触发器 触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT.DELETE.UPDATE和UPDATE OF.当数据库系统执行这些事件时,会激活触发其执行相应的操作.下面为数据库添加触发器.操作步骤如下: (1)打开的数据库,单击左下角的齿轮按钮,选择其中的Create Trigger选项,弹出Trigger Creator对话框,如图1.23所示. 图1.23  Trigger Creator对话框 (2)在Trig

Xamarin图表开发基础教程(3)OxyPlot框架

Xamarin图表开发基础教程(3)OxyPlot框架 Xamarin.Android中使用OxyPlot框架 在Xamarin.Android平台上实现图表显示需要完成以下的步骤: 1.添加OxyPlot.Xamarin.Android组件 打开Xamarin.Android项目,使用Nuget将OxyPlot.Xamarin.Android组件添加到项目的引入中. 2.布局PlotView视图 在界面布局axml文件中,使用PlotView视图进行布局,其语法形式如下: <OxyPlot.X

Xamarin图表开发基础教程(4)OxyPlot框架

Xamarin图表开发基础教程(4)OxyPlot框架 XamaminAndroid中绘制线图OxyPlotAndroidDemo [示例1-1:OxyPlotAndroidDemo]下面实现线图的绘制.具体的操作步骤如下: (1)打开Xamarin.Android项目. (2)将OxyPlot.Xamarin.Android组件添加到项目中的引入中. (3)打开activity_main.axml文件,使用PlotView进行布局.代码如下: <?xml version="1.0&quo

Xamarin图表开发基础教程(6)OxyPlot框架

Xamarin图表开发基础教程(6)OxyPlot框架 Xamamin iOS中绘制线图OxyPlotiOSDemo [示例OxyPlotiOSDemo]下面将实现线图的显示.具体的操作步骤如下: (1)打开Xamarin.iOS项目. (2)将OxyPlot.Xamarin.iOS组件添加到项目中的引入中. (3)打开ViewController.cs文件,完成剩余的步骤,即创建PlotView视图.绘制图表.设置显示模式以及显示PlotView.代码如下: using Foundation;

【小蜜蜂老师主讲】基于STM32CubeMX的嵌入式开发基础教程

基于STM32CubeMX的嵌入式开发基础教程 广东职业技术学院/小蜜蜂笔记网  欧浩源 [第01单元]:STM32CubeMX的安装与快速入门 教案资源链接,视频教程链接. [第02单元]:STM32的GPIO开发基础 教案资源链接,视频教程链接. [第03单元]:STM32的按键开发基础 教案资源链接,视频教程链接. [第04单元]:STM32的中断系统与外部中断基础 教案资源链接,视频教程链接. [第05单元]:STM32的定时器开发基础 教案资源链接,视频教程链接. [第06单元]:ST

Daydream从入门到精通——快速入门开发基础教程二:Android端开发环境配置二

开始部署 上篇介绍了开发Daydream Android VR需要的基本环境,这篇我们来看看如何部署和运用官方示例. -------------------------------------------------------------------------------------------------------------------- Daydream快速入门开发基础教程一:Android端开发环境配置一 http://blog.csdn.net/jaikydota163/arti

iOS 9应用开发基础教程下册

介绍: 本教程是国内第一本iOS 9开发应用教程.本教程基于Xcode 7.0,使用Swift 2.0语言讲解如何开发iOS 9的应用App. 学习建议:本教程针对iOS开发初学者,学习前需要具备Swift 2.0语言基础.学习Swift 2.0,可以参考教程 Swift2.0语言快速入门. 目  录 第11章  数据管理 1 11.1  文件管理 1 11.1.1  创建文件 1 11.1.2  写入数据 3 11.1.3  读取数据 6 11.1.4  删除文件 9 11.2  使用SQLi