Android,在屏幕上看到视图时播放声音
我在安卓系统中的音频有问题。这里是交易,我有一个非常简单的启动屏幕。我的意图是一旦屏幕加载,它将播放一个非常小的音频文件 问题是,很多时候,音频会在启动屏幕实际出现之前播放 是否有一种通过编程方式验证屏幕是否已加载的方法?我不想添加不必要的计时器,以确保声音在加载之前不会播放。我希望声音在屏幕出现的准确时刻播放 以下是我的xml文件中的一个片段:Android,在屏幕上看到视图时播放声音,android,image,audio,Android,Image,Audio,我在安卓系统中的音频有问题。这里是交易,我有一个非常简单的启动屏幕。我的意图是一旦屏幕加载,它将播放一个非常小的音频文件 问题是,很多时候,音频会在启动屏幕实际出现之前播放 是否有一种通过编程方式验证屏幕是否已加载的方法?我不想添加不必要的计时器,以确保声音在加载之前不会播放。我希望声音在屏幕出现的准确时刻播放 以下是我的xml文件中的一个片段: <ImageView android:src="@drawable/splash" android:layout_width="match_pa
<ImageView
android:src="@drawable/splash"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
提前感谢您的帮助 你不是唯一一个有类似问题的人:))有几种方法可以做到这一点,最流行的方法是实现OnGlobalLayoutListener(),例如:
View yourView = ...;
yourView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener()
{
// -----------------------------------------
//
// Callback method to be invoked when the
// global layout state or the visibility
// of views within the view tree changes
//
// -----------------------------------------
@Override
public void onGlobalLayout()
{
// Remove view
View yourView = findViewById( R.id.yourId );
if ( yourView != null )
{
yourView .getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
// PLAY SOUND
}
});
彼得哇,太快了。非常感谢你。我将关注这项决议。谢谢你的时间!
View yourView = ...;
yourView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener()
{
// -----------------------------------------
//
// Callback method to be invoked when the
// global layout state or the visibility
// of views within the view tree changes
//
// -----------------------------------------
@Override
public void onGlobalLayout()
{
// Remove view
View yourView = findViewById( R.id.yourId );
if ( yourView != null )
{
yourView .getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
// PLAY SOUND
}
});