使用覆盖为用户指令android

时间:2013-12-10 12:52:48

标签: android overlay

您好我试图在我的应用中添加一个简单的叠加层以向用户突出显示位和bob我正在关注此简短指南 http://www.christianpeeters.com/android-tutorials/android-tutorial-overlay-with-user-instructions/ 但我得到一个错误使用Android工作室无法解决变量topLeveLayout我是一个完整的初学者,并尝试过多点来获得这个移动任何建议?

这是我的xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main_layout" >


<RelativeLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
    android:layout_width="match_parent"
    android:layout_height="55dp"
    android:text="@string/bath2"
    android:id="@+id/bath_text_View"
    android:textSize="23sp"
    android:gravity="center"
    android:textStyle="bold|italic" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/bath_text_View"
    android:contentDescription="@string/bathable2"
    android:src="@drawable/pic5"
    android:layout_above="@+id/nextbutton"
    android:id="@+id/imageView"
    android:scaleType="centerCrop"
    android:cropToPadding="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/next"
    android:id="@+id/nextbutton"
    android:textSize="20sp"
    android:textStyle="bold|italic"
    android:layout_gravity="center"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:onClick="nextImage2"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button2"
    android:background="@android:color/transparent"
    android:layout_above="@+id/button4"
    android:layout_centerHorizontal="true" />

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/button4"
    android:background="@android:color/transparent"
    android:layout_above="@+id/button"
    android:layout_alignParentLeft="true"
    android:clickable="false" />

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="invisible"
    android:id="@+id/button"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true" />

</RelativeLayout>
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#88666666"
    android:id="@+id/top_layout">

    <ImageView
        android:id="@+id/ivInstruction"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:paddingTop="25dp"
        android:layout_marginRight="15dp"
        android:clickable="false"
        android:paddingLeft="20dip"
        android:scaleType="center"
        android:contentDescription="@string/overlay"
        android:src="@drawable/hint_menu" />

</RelativeLayout>

</FrameLayout>

所以我在一个框架布局中有两个相对布局,第一个是我的应用程序,第二个是覆盖

这是我的.java

public class bathactivity2 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bath_2);
    topLevelLayout = findViewById(R.id.top_layout);

    if (isFirstTime()) {
        topLevelLayout.setVisibility(View.INVISIBLE);
    }



    Button button2 = (Button) findViewById(R.id.button2);
    Button button4 = (Button) findViewById(R.id.button4);



    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaPlayer mp = MediaPlayer.create(bathactivity2.this, R.raw.rubber_duck);
            mp.start();
        }
    });

    button4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaPlayer mp = MediaPlayer.create(bathactivity2.this, R.raw.bubbles);
            mp.start();
        }
    });

}

public void nextImage2(View view){
    Intent intent = new Intent(this, BathActivity3.class);
    startActivity(intent);
}

private boolean isFirstTime()
{
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    boolean ranBefore = preferences.getBoolean("RanBefore", false);
    if (!ranBefore) {

        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean("RanBefore", true);
        editor.commit();
        topLevelLayout.setVisibility(View.VISIBLE);
        topLevelLayout.setOnTouchListener(new View.OnTouchListener(){

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                topLevelLayout.setVisibility(View.INVISIBLE);
                return false;
            }

        });

    }
    return ranBefore;

}
}

它只是一个带有几个隐藏按钮的图像因此我想要一个叠加来指出按钮所在的位置,我得到的错误无法解决topLevelLayout无法解决运动事件和其他,这只是一个案例首先宣布这些,如果是这样的话?它是什么样的

Layout topLevelLayout;    

还是有更糟糕的事情在这里谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

查看topLevelLayout; 这解决了它