用Android Studio創建壹個名為“手機信息頁面”的程序,該程序用於展示手機設置頁面的信息。
1.運行效果圖
2. ?設計思路(實現原理)
1)將準備好的八個圖標復制到res/drawable文件夾下
2)創建壹個垂直的線性布局,並在線性布局中創建4個相對布局 ?
3)在相對布局中添加相應的TextView
4)在values文件下的style.xml文件中存放抽取出來的樣式
5)創建values-zh-rCN、values-en-rUS文件夾,並在文件夾中創建strings.xml文件
3.案例實現
1)創建手機信息頁面程序
在res/layout文件夾下的activity_main.xml為程序界面對應布局文件,其中的代碼如下所示:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=".phoneinfo.MainActivity">
<RelativeLayout style="@style/h_wrap_content" ? android:layout_marginTop="10dp">
<TextView ?style="@style/tv_style" ? android:layout_alignParentLeft="true" ? android:layout_marginLeft="10dp" ? android:drawableTop="@drawable/clound" ? android:text="@string/_cloud"/>
<TextView ? style="@style/tv_style" ? android:layout_alignParentRight="true" ? android:layout_marginRight="10dp" ? android:drawableTop="@drawable/bluetooth" ? android:text="@string/_bluetooth"/>
</RelativeLayout>
<RelativeLayout style="@style/h_wrap_content" android:layout_marginTop="10dp">
<TextView style="@style/tv_style" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:drawableTop="@drawable/gesture" android:text="@string/_gesture" />
<TextView style="@style/tv_style" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:drawableTop="@drawable/gps" android:text="@string/_gps" />
</RelativeLayout>
<RelativeLayout style="@style/h_wrap_content" android:layout_marginTop="10dp">
<TextView style="@style/tv_style" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:drawableTop="@drawable/info" android:text="@string/_system_info" />
<TextView style="@style/tv_style" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:drawableTop="@drawable/internet" android:text="@string/_internet" />
</RelativeLayout>
<RelativeLayout style="@style/h_wrap_content" android:layout_marginTop="10dp">
<TextView style="@style/tv_style" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:drawableTop="@drawable/language" android:text="@string/_language" />
<TextView style="@style/tv_style" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:drawableTop="@drawable/notifycation" android:text="@string/_set_notifycation" />
</RelativeLayout>
</LinearLayout>
2)抽取樣式
由於編寫布局文件時,相同控件之間的外邊距和寬高都是固定的。因此會產生大量重復的布局
代碼,為了代碼簡潔和重復使用可以將相同代碼抽取為樣式單獨放在壹個style.xml文件中。
在res/values文件夾下創建style.xml文件,style.xml文件中代碼如下所示:
<?xml version="1.0" encoding="utf-8"?><resources>
<style name="AppBaseTheme" parent="android:Theme.Light"></style> <!-- 寬 match——parent 高 ?wrap_content--> <style name="h_wrap_content">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
</style> <!-- 寬高都 match——parent --> <style name="tv_style">
<item name="android:layout_width">160dp</item>
<item name="android:layout_height">115dp</item>
<item name="android:gravity">center</item>
<item name="android:paddingTop">8dp</item>
<item name="android:paddingBottom">8dp</item>
<item name="android:drawablePadding">5dp</item>
<item name="android:background">@android:color/white</item>
</style>
</resources>
3)創建values-zh-rCN、values-en-rUS文件夾
在res目錄下創建values-zh-rCN、values-en-rUS文件夾,並在這兩個文件夾下創建相應
的strings.xml文件。
values-zh-rCN文件夾下的strings.xml文件如下所示:
<?xml version="1.0" encoding="utf-8"?><resources>
<string name="app_name">手機信息頁面</string>
<string name="menu_settings">設置</string>
<string name="hello_world">妳好,世界!</string>
<string name="_cloud">雲通信</string>
<string name="_bluetooth">藍牙</string>
<string name="_gesture">自定義手勢</string>
<string name="_gps">定位</string>
<string name="_system_info">系統信息</string>
<string name="_internet">網絡</string>
<string name="_language">語言設置</string>
<string name="_set_notifycation">通知欄設置</string>
</resources>
values-en-rUS文件夾下的strings.xml文件如下所示:
<?xml version="1.0" encoding="utf-8"?><resources>
<string name="app_name">phoneInfo</string>
<string name="menu_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="_cloud">Cloud</string>
<string name="_bluetooth">Bluetooth</string>
<string name="_gesture">Gesture</string>
<string name="_gps">Gps</string>
<string name="_system_info">SystemInfo</string>
<string name="_internet">Internet</string>
<string name="_language">Language</string>
<string name="_set_notifycation">Notifycation</string>
</resources>
4)編寫與界面交互的代碼
需要在MainActivity中編寫與用戶交互的邏輯代碼,MainActivity對應的代碼如下所示:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
以上便是手機信息頁面的全部代碼,運行在模擬器上上面的字默認會顯示英文,要想顯示
中文需要設置壹下:
首先找到模擬器的設置Settings點擊進入
設置好之後運行模擬器頁面上面的字就會顯示為中文