Для пульсирующей подсказки вы можете попытаться создать иконку подсказки, поместите отрисовку (которую вы хотите анимировать) под подсказкой, а затем просто оживите ее.Так что-то вроде этого будет работать:
Создайте макет с двумя ImageViews
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".MainActivity">
<ImageView
android:id="@+id/pulse"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/grad_pulse"
android:layout_centerInParent="true"/>
<ImageView
android:id="@+id/hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_info"
android:layout_centerInParent="true"/>
</RelativeLayout>
Создайте нужную анимацию (например, импульс):
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="2"
android:repeatMode="reverse"
android:toXScale="0.5"
android:toYScale="0.5" />
И затем подключите всеоб этом в MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
animate()
}
private fun animate() {
val pulse = findViewById<ImageView>(R.id.pulse)
val anim = AnimationUtils.loadAnimation(this, R.anim.pulse)
anim.repeatCount = Animation.INFINITE
pulse.startAnimation(anim)
}
}
Если вы хотите, чтобы пульсировало только само изображение, вы можете просто использовать один ImageView и масштабировать сам значок.
как проверить, еслиэто первый раз, когда пользователь посетил фрагмент?
Вы можете использовать SharedPreferences.Создайте пару ключ / значение, для которой по умолчанию будет установлено значение false.Если это неверно, вы знаете, что это первый раз, когда пользователь открыл ваше приложение.Если это так, просто измените значение на true - в следующий раз, когда пользователь введет ваш фрагмент, значение будет установлено в true, что означает, что он был там раньше.
Вы можете использовать этот ответ каквдохновение