2013-04-11 81 views
1

我需要根據用戶的行爲顯示和隱藏ImageView。我將ImageView設置爲在onCreate()中不可見,我嘗試在用戶選擇OptionsMenu中的某個項目時再次使其可見。奇怪的是,它並沒有顯示出來,只會在活動恢復後纔會顯示出來。谷歌地圖v2即使設置爲可見,ImageView仍然不可見

下面是XML代碼:

<ImageView 
    android:id="@+id/rectimage" 
    android:layout_width="20dp" 
    android:layout_height="20dp" 
    android:src="@drawable/rect" /> 

哪裏躲imageview的

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.main); 

    image = (ImageView) findViewById(R.id.rectimage); 
    image.setVisibility(View.INVISIBLE); 
} 

在哪裏我試圖使它再次可見

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) {    
    case R.id.menu_visible: 
     image.setVisibility(View.VISIBLE);   
    return true; 
    } 
    return false; 
} 

這裏是在onStart和的onResume,不做任何事情。

@Override 
protected void onStart() { 
    super.onStart(); 
    Log.w(TAG, "-- ON Start --"); 

} 

@Override 
public void onResume() { 
    super.onResume(); 
    Log.w(TAG, "-- ON Resume --"); 
} 

這裏是我的XML繪製資源

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
<solid android:color="@android:color/transparent"/> 
<corners android:radius="20px"/> 
<stroke android:width="2dip" android:color="#000000"/> 
</shape> 
+4

發佈您隱藏和顯示ImageView的代碼。 – Sam 2013-04-11 16:09:37

+0

@Sam我有更新我的問題 – 2013-04-11 16:15:53

+0

你可以發佈onResume()? – gatnowurry 2013-04-11 16:19:36

回答

0

這是因爲你是畫一個矩形透明:

<solid android:color="@android:color/transparent"/> 

你看到的邊界正在制定?

此外,您是否嘗試在onOptionsItemSelected中設置斷點以確保它被調用?

+0

我prettry確定這不是問題。透明只會讓我的形象在中間鏤空。它仍然會顯示行 – 2013-04-11 16:38:35

+0

但它有角 – Pragnani 2013-04-11 16:38:58

+0

ImageView只繪製你告訴它。你告訴它繪製的唯一東西是一個透明的矩形。沒有設置背景,所以它唯一知道的就是你設置的'src'。 – 2013-04-11 16:40:20

相關問題