3

で読み込み、onCreate()ImageView by findViewById(). ImageView は XML から INVISIBLE として設定されており、onStart()を呼び出すことで可視になるはずmImage.setVisibility(View.VISIBLE)です。

奇妙なことに、可視性は変更されませんが、XML から GONE を設定すると、可視性は実際に変更されます。

私が見逃しているものはありますか?

編集:

コード:

private class MyClass extends Activity {
...
private ImageView mImage;
...


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mImage = (ImageView)findViewById(R.id.imageViewCompass);
......
}

@Override
protected void onStart() {
    super.onStart();
    mImage.setVisibility(View.VISIBLE);
}
}

そしてXMLから:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeBus"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >



    <ImageView
        android:id="@+id/imageViewCompass"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/mwImage"
        android:visibility="invisible" />


</RelativeLayout>

4

2 に答える 2

2

申し訳ありませんが、私は十分に明確ではないことに気づきました。私は OpenGL SurfaceView を使用していますが、それが他のビューに迷惑をかけるとは思いませんでした.SurfaceView の上のレイヤーで作業するときsetVisibility()から、この方法にはいくつかの問題があるようです..View.INVISIBLE

ここで答えを見つけました: https://stackoverflow.com/a/12655713/2402640

于 2013-07-18T21:22:34.473 に答える
0

まず、アクティビティ クラスをプライベート クラスとして宣言する理由です。パブリック、アブストラクト、ファイナルのみが許可されます。次に、あなたから提供された正確なコードをコピーして貼り付け、新しい Android アプリケーション プロジェクトを作成しましたが、正常に動作します。完全な .xml ファイルを投稿してください。

于 2013-07-17T18:26:45.147 に答える