1、使用Studio创建第一个TV项目
创建一个新的activity
记得打钩
添加这两个属性
<uses-feature
android:name="android.software.leanback"
android:required="false" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
创建完成之后呢,运行的话会报这错误
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
原因是Activty继承自android.support.v7.app.AppCompatActivty,而不是android.app.Activty。
1、在创建的activity时,如果不用继承AppCompatActivity的话,就直接继承Activity。
例:
public class PhotoPreviewActivity extends AppCompatActivity 改为 public class PhotoPreviewActivity extends Activity
2、如果必须要继承AppCompatActivity的话,我们看另一种办法:
根据提示来使用AppCompat的theme,即将AndroidManifest.xml文件中关于Activity的主题配置改成:
android:theme=”@style/Theme.AppCompat.Light.NoActionBar”
将继承AppCompatActivity的Activty主题修改或者添加上面主题可解决
例:
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
摘抄自
Android Studio 创建第一个TV项目
2、安卓TV App中遥控器选中效果
在安卓开发TV项目过程中,由于交互要是用到遥控器,所以就不得不面临高亮显示的问题,否则根本看不出遥控器的焦点在哪里,实现高亮效果的思路就是
OnFocusChangeListener
示例代码:
<Button
android:id="@+id/btn_ok"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ed_oneblueright"
android:gravity="center"
android:text="立即更新"
android:textColor="#FF073C68"
android:textSize="25sp" />
java代码:
btn_ok.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){//获取焦点后设置想要显示的背景
mIgnore.setBackgroundResource(R.drawable.button_choose);
}else {//失去焦点后设置默认背景
mIgnore.setBackgroundResource(R.drawable.button_nochoose);
}
}
});
3、app开机自启功能