2011-04-18 86 views
7

我已經在main.xml中設置了一個ImageView,如果我想從我的View類訪問它,並使其可見= false,我該如何以編程方式執行此操作?更改ImageView

謝謝

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    theView = new GameView(this); 
    theView.setBackgroundResource(R.layout.main); 
    setContentView(theView); 
+0

這不是調用佈局我對主要:( – user710502 2011-04-18 06:38:32

回答

9

例如,在佈局XML文件中,有一個imageview1

<ImageView 
android:id="@+id/imageview1" 
android:layout_gravity="center" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
/> 
在Java SRC

ImageView img=(ImageView)findViewById(R.id.imageview1); 
img.setVisibility(View.GONE); 
img.setVisibility(View.VISIBLE); 
img.setVisibility(View.INVISIBLE); 

你可以在google的區別介於View.Gone和View.VISIBLE

+0

這是偉大的,最後一個問題...我正在做的View類的所有代碼,但我的正確佈局與setContentView(R.layout.main)顯示,但我想要相同的佈局拿出setContentVi ew(myView),我該怎麼做? – user710502 2011-04-18 06:23:39

+0

@ user710502在佈局文件夾中創建一個佈局文件myView.xml,然後setContentView(R.layout.myView)。這是你想要的嗎? – ninikin 2011-04-18 06:27:17

+0

它仍然會調用我的類myView的所有元素?如果我這樣做?基本上我有一個活動,在我實例化的活動,並做這個公共無效的onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); theView = new GameView(this); theView.setBackgroundResource(R.layout.main);的setContentView(theView);但它沒有顯示佈局,它回來了黑屏。如果我做setContentView(R.layout.main)只有它顯示,但myTable的OnTouch事件不會工作 – user710502 2011-04-18 06:29:25

1

首先,您應該檢索到此視圖對象的鏈接。比這個對象來View.INVISIBLE

ImageView imageView = (ImageView)findViewById(R.id.image_view); 
imageView.setVisibility(View.INVISIBLE); 
+0

非常感謝你 – user710502 2011-04-18 06:25:50

1

使用該屬性在ImageView的

android:visibility="visible" 

和編程改變可視性這樣的一些特定事件的XML集visibility屬性:

image.setVisibility(ImageView.GONE) 

其中image是通過收到的imageview實例findViewById()

+0

非常好我正在嘗試 – user710502 2011-04-18 06:25:33

1

假設你有一個叫ImageViewimageView

現在訪問imageView

imageView=(ImageView) findViewById(R.id.your_image_view); 

現在,當你試圖隱藏imageView只使用imageView.setVisibility(View.INVISIBLE);

希望這將幫助你

+0

是的,你們所有人都很棒:) – user710502 2011-04-18 06:25:04