2012-02-06 68 views
6

這個android開發很新穎,我剛開始創建一個hello world應用程序。如何在android中設置背景圖片

我試圖設置一個背景圖片,它工作的很好。當我試圖在圖片上添加文本時,它不起作用。

我嘗試了下面的方式。任何人都可以幫助我哪裏出錯。

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="@drawable/andriod" 
    android:layout_gravity="center_vertical" 
    android:gravity="center_vertical"> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 

</LinearLayout> 

HelloActivity.java

import android.app.Activity; 
    import android.os.Bundle; 
    import android.widget.TextView; 
    //import android.widget.ImageView;  

    public class HelloActivity extends Activity { 
    // /** Called when the activity is first created. */ 
    // @Override 
    // public void onCreate(Bundle savedInstanceState) { 
    //  super.onCreate(savedInstanceState); 
    //  setContentView(R.layout.main); 
    // }  

    /** Called when the activity is first created. */ 
     @Override 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      TextView tv = new TextView(this);    
      tv.setText("This is the first andorid app");   
      setContentView(R.layout.main);   
     } 
} 

當運行它顯示背景圖像,而是 「這是第一個應用程序的Andorid」 沒有顯示。

希望能對您有所幫助

+3

@ishhhh:您正在TextView電視中設置文本,但未在佈局中添加此電視。 – Mudassir 2012-02-06 11:20:48

回答

3

您必須在佈局文件中使用其唯一ID選擇TextView,然後設置它的屬性。但在你的代碼中,你只需用文本創建一個文本視圖,而不是把它放到視圖中。

TextView tv = (TextView) findViewById(R.id.textView1); 
tv.setText("Your text here"); 
+0

感謝很多friend.it爲我工作 – ishhhh 2012-02-06 11:31:10

+0

可以請你告訴我如何在sdk中運行下載的android示例項目當我下載示例項目即時通訊無法運行它可以請你幫我 – ishhhh 2012-02-06 11:37:23

+0

不客氣。如果你安裝了eclipse,那麼在android項目嚮導中,有一個選項可以直接在Eclipse中打開示例項目。 – NotCamelCase 2012-02-06 12:10:47

4

您需要從當前內容視圖獲取的TextView .. 添加這些行後的setContentView(..),也是在佈局中的ID添加到您的文本視圖

TextView tv = (TextView)findViewById(...) 
+0

agree.nice答案。 – 2012-02-06 11:20:46

+0

thankyou rajdeep – ishhhh 2012-02-06 11:31:31

6

首先,你需要給TextView的XML文件中的ID,以便它可以在Java源(注意機器人:在下面的XML id屬性)的訪問;

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="@drawable/andriod" 
    android:layout_gravity="center_vertical" 
    android:gravity="center_vertical"> 

    <TextView 
     android:id="@+id/textView" 

     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 

</LinearLayout> 

現在在此textview中設置文本;

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    TextView textView = (TextView) findViewId(R.id.textView); 

    textView.setText("This is the first andorid app"); 
} 

請注意,XML中聲明的textview是如何從這裏訪問的。

這不是

TextView textView = new TextView(this); 

這將創建一個新的TextView。但我們這裏需要的是

TextView textView = (TextView) findViewId(R.id.textView); 

這將引用上面XML文件中聲明的textview。

+0

謝謝你的詳細解釋。對於像我這樣的初學者來說,這非常有幫助。希望你在未來的幫助也 – ishhhh 2012-02-06 11:40:03

+0

@ishhhh:當然,並感謝upvote。 – Mudassir 2012-02-06 11:41:25

+0

:可以請告訴我如何在sdk中運行下載的android示例項目。當我下載示例項目即時通訊無法運行它可以請你幫我 – ishhhh 2012-02-06 11:44:29