我试图这样做。当有人在5分钟后没有触摸安卓平板电脑的屏幕时,我想在屏幕上显示一张照片,直到有人触摸屏幕才显示。我怎么能这样做。我开发了一个Android应用程序,我需要在我的应用程序中添加此功能。
答案 0 :(得分:0)
正确的方法是创建一个仅包含您要显示的图像的独立活动,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/YOUR_IMAGE"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
然后在任何当前常规运行活动的onCreate
中,运行以下方法:
public class YOUR_ACTIVITY extends Activity {
public static int x = 0; // must be static
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
run_thread();
}
private void run_thread(){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while(x < 5000){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
x++;
}
//Image.Class is the Activity that contains just the Image
Intent intent = new Intent(getApplicationContext(),
Image.class);
intent.putExtra(EXIT, false);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
thread.start();
}
然后使用以下内容覆盖该活动的onTouchEvent
:
@Override
public boolean onTouchEvent(MotionEvent event) {
x = 0;
return true;
}
然后覆盖onTouchEvent
活动的Image
,以便当有人触摸它时,它会运行YOUR_ACTIVITY
活动并将x
设置为 0
要从YOUR_ACTIVITY
活动返回Image
,请覆盖onTouchEvent
活动中的Image
方法,如下所示:
@Override
public boolean onTouchEvent(MotionEvent event) {
YOUR_ACTIVITY.x = 0;
Intent intent = new Intent(getApplicationContext(),
YOUR_ACTIVITY.class);
intent.putExtra(EXIT, false);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}