问题描述
在leanback主网格中的Viewholder内部插入VectorDrawable图形,使它们在聚焦时看起来很难看。有一些无法解决的缩放问题。
以下是正常应用中的简单示例:
ic_vawe.xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="986.5dp"
android:height="87.27dp"
android:viewportWidth="986.5"
android:viewportHeight="87.27">
<path
android:fillColor="#FF000000"
android:pathData="M464.46,86.61c-24.27,0.49 -63.93,0.66 -62,0.66h584V26.68C716.37,26.72 694.13,78.17 464.46,86.61Z"
android:strokeAlpha="0.5"
android:fillAlpha="0.5"/>
</vector>
Activity.kotlin
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var iv = this.findViewById<ImageView>(R.id.imageView_1);
var d3 = ContextCompat.getDrawable(this,R.drawable.ic_wave);
iv.setimageDrawable(d3);
iv.setonClickListener {
iv.scaleY = iv.scaleY + 0.6F;
}
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView_1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
在具有与导航相关的缩放比例的AndroidTV Leanback库中导航时,该行为非常明显。图像仅在一种状态下才清晰。请看那些难看的边缘:
请帮我在Android TV项目中平滑VectorDrawables的边缘。你有什么主意吗?
解决方法
请尝试使用PNG图片代替xml drawables。