如何在android中设置背景图片

时间:2012-02-06 11:15:13

标签: android

我是这个Android开发的新手。我刚开始创建一个hello world应用程序。

我尝试设置背景图片并且工作正常。当我尝试在图像上添加文字时,它无效。

我尝试了以下方式。任何人都可以在我出错的地方帮助我。

in

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 个答案:

答案 0 :(得分:6)

首先,您需要在text文件中为textview提供一个id,以便可以在Java源代码中访问它(请注意以下XML中的android: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。

答案 1 :(得分:4)

您需要从当前内容视图中获取TextView。 在setContentView(..)之后添加这些行,还在布局

中为文本视图添加一个id
TextView tv = (TextView)findViewById(...)

答案 2 :(得分:3)

您必须使用其唯一ID在布局文件中选择TextView,然后设置其属性。但是在你的代码中,你只需用文本创建一个文本视图,而不是将其放在视图中。

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