2012/2013 учебный год
Упражнение 1
Изменить цвет фона Linear Layout и надписи при нажатии на кнопку.
Внимание! Откройте файл
gen/org/ggpi/MyLayout01/R.java
и проверяйте после выполнения каждого из ниже приведённых соответствующих примеров, что в нём зарегистрированы объекты:
Самостоятельно определите: какие объекты здесь должны быть?
Пример 1.1. Файл res/values/colors.xml
<resources> <color name="greenColor">#FF00FF00</color> <color name="yellowColor">#FFFFFF00</color> </resources>
Пример 1.2. Файл res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">MyLayout01</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="btn_green">Green</string> <string name="btn_yellow">Yellow</string> </resources>
Пример 1.3. Файл res/drawable-hdpi/myborder.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#FFFFFF" /> <stroke android:width="5dp" android:color="#00FF00" /> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> </shape>
Пример 1.4. Файл res/layout/main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@drawable/myborder" tools:context=".MainActivity" > <LinearLayout android:id="@+id/rightLayout" android:layout_width="wrap_content" android:layout_height="fill_parent" android:background="@drawable/myborder" android:layout_alignParentRight="true" android:orientation="vertical"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/btnGreen" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:onClick="btnGreen_Click" android:text="@string/btn_green" /> <Button android:id="@+id/btnYellow" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:onClick="btnYellow_Click" android:text="@string/btn_yellow" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout>
Пример 1.5. Файл MainActivity.java
package org.ggpi.MyLayout01; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { public LinearLayout rightLayout; public TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); rightLayout = (LinearLayout)findViewById(R.id.rightLayout); tv = (TextView)findViewById(R.id.tv); } public void btnGreen_Click(View v) { rightLayout.setBackgroundResource(R.color.greenColor); tv.setBackgroundResource(R.color.yellowColor); } public void btnYellow_Click(View v) { rightLayout.setBackgroundResource(R.color.yellowColor); tv.setBackgroundResource(R.color.greenColor); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }