這個例子學習混合使用XML佈局和代碼來控制UI,習慣上把變化小、行爲固定的組件放在XML佈局文件中管理,而那些變化較多、行爲控制複雜的組件則交給Java代碼來管理。html
先在佈局文件中定義一個線性佈局容器。main.xml修改以下:java
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity" android:id="@+id/root" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout>
MainActivity.java代碼以下:android
package allegro.test3; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends AppCompatActivity { int[] images=new int[]{ R.drawable.java, R.drawable.javaee, R.drawable.swift, R.drawable.ajax, R.drawable.html, }; int currentImg=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取LinearLayout佈局容器 LinearLayout main=(LinearLayout) findViewById(R.id.root); //程序建立ImageView組件 final ImageView image=new ImageView(this); //添加到LinearLayout佈局容器中 main.addView(image); //初始化時顯示第一張圖 image.setImageResource(images[0]); image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { image.setImageResource(images[++currentImg % images.length]); } }); } }
在Android工程中,每添加一個資源,就會在gen目錄下的R.Java中自動生成一個新的靜態整型變量來指向這個資源。程序文件中調用資源的時候,先在R.java中找到變量名,而後根據變量值查找資源。
能夠直接在工程的\res\drawable文件夾裏拷貝一個圖片文件過去。而後在 res – drawable 標籤下就會多出來你添加的圖片。R.java中也會自動添加一個以圖片文件名爲變量名的整型變量。
注意:文件名必須全爲小寫。若是有大寫的話,R.java中不會生成新的變量,這樣程序裏也就沒辦法調用。ajax