github源码地址 https://github.com/xiangfenr/TVAmplification
一.新建TV项目,或者别的项目添加TV识别也行
<!--AndroidManifest.xml 中标记为电视应用 -->
<uses-feature
android:name="android.hardware.type.television"
android:required="true"></uses-feature>
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.software.leanback"
android:required="true" />
二.添加drawable 焦点选中样式
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--是否取得焦点,比如用户选择了一个文本框。-->
<item android:drawable="@mipmap/imgchecked" android:state_focused="true" />
<item android:drawable="@mipmap/imgdefault" android:state_focused="false" />
</selector>
三. xml样式设置
<ImageView
android:id="@+id/imageBtn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
android:focusable="true"
android:src="@drawable/banner1_clicked"
android:tag="imageBtn1" />
四. java代码编写,添加Focus焦点监听,利用ImageView的 setScaleX,setScaleY设置放大
也可以自己编写一个属性动画
imageView.setOnFocusChangeListener((view, b) -> {
Log.e("xf", "initEvent: " + view.getTag().toString() + " focus = " + b);
if (b) {
view.setScaleX(1.4f);
view.setScaleY(1.4f);
imageView.bringToFront(); //此属性是将view添加到最上层
} else {
view.setScaleX(1.0f);
view.setScaleY(1.0f);
}
});
网友评论