• ❌ Spam, Đăng sai chuyên mục ➨ banned vĩnh viễn không cần báo trước !
    >> Hãy nói không với Spam và cùng nhau phát triển diễn đàn bạn nhé!
  • ➨ĐĂNG TIN MUA BÁN RAO VẶT MIỄN PHÍ tại ➤ MUABANRAOVATTOP.COM

Giới thiệu Themes trong lập trình Android

p_erudite

New Member
Một Theme là một kiểu Android áp dụng cho một hoạt động toàn bộ hoặc ứng dụng, chứ không phải là một cá nhân View. Vì vậy, khi một kiểu được áp dụng như là một chủ đề, mỗi View trong Activity hay ứng dụng sẽ áp dụng từng sở hữu phong cách mà nó hỗ trợ khi học lập trình android cơ bản

Ví dụ, bạn có thể áp dụng kiểu dáng CustomFontStyle giống như một chủ đề cho một hoạt động và sau đó tất cả các văn bản bên trong Activity đó sẽ có font chữ đơn cách màu xanh lá cây.

Để thiết lập một chủ đề cho tất cả các hoạt động của ứng dụng của bạn, mở file AndroidManifest.xml và chỉnh sửa các tag <application> để bao gồm các thuộc tính android:theme với tên style. Ví dụ như:

Mã:
<application android:theme="@style/CustomFontStyle">
Nếu bạn muốn một theme được áp dụng chỉ với một Activity trong ứng dụng của bạn, sau đó thêm thuộc tính android:theme để tag <activity> .
Ví dụ:

Mã:
<activity android:theme="@style/CustomFontStyle">
Có một số theme mặc định xác định bởi Android, bạn có thể sử dụng trực tiếp hoặc kế thừa chúng sử dụng thuộc tính cha như sau:

Mã:
<style name="CustomTheme" parent="android:Theme.Light">[/SIZE][/COLOR][/FONT]
[SIZE=4][FONT=Georgia][COLOR=rgb(20, 20, 20)]...
</style>

Ví dụ sau đây cho thấy làm thế nào bạn có thể sử dụng một theme cho một ứng dụng. Đối với mục đích giới thiệu, chúng tôi sẽ sửa đổi văn bản mặc định AppTheme mặc định của chúng tôi, size, family, shadow,... sẽ được thay đổi. Hãy bắt đầu với việc tạo ra một ứng dụng Android đơn giản theo các bước sau đây:

BướcMô tả
1Bạn sẽ sử dụng Eclipse IDE để tạo ra một ứng dụng Android và đặt tên nó như ThemeDemo dưới một gói com.example.themedemo
2Sửa đổi file src/MainActivity.java thêm nhấp chuột nghe sự kiện và xử lý đối với hai nút được xác định.
3Xác định theme của bạn trong toàn cầu tập tin theo kiểu res/values/style.xml để xác định thuộc tính tùy chỉnh cho một nút.
4Sửa đổi các nội dung của file mặc định res/layout/activity_main.xml để bao gồm một bộ điều khiển Android UI và sử dụng các kiểu định nghĩa.
5Xác định hằng số yêu cầu trong file res/values/strings.xml
6Chạy ứng dụng để khởi chạy giả lập Android và xác minh kết quả của những thay đổi được thực hiện trong các ứng dụng.
Nội dung của các hoạt động chính được sửa đổi trong file src/com.example.themedemo/MainActivity.java. Trong file này có thể gồm các phương pháp vòng đời đơn giản.
Mã:
[/SIZE][/COLOR][/FONT]
[SIZE=4][FONT=Georgia][COLOR=rgb(20, 20, 20)]package com.example.themedemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//--- find both the buttons---Button sButton = (Button) findViewById(R.id.button_s);
Button lButton = (Button) findViewById(R.id.button_l);
// -- register click event with first button ---sButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// --- find the text view --TextView txtView = (TextView) findViewById(R.id.text_id);
// -- change text size --txtView.setTextSize(20);
}
});
// -- register click event with second button ---lButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// --- find the text view --TextView txtView = (TextView) findViewById(R.id.text_id);
// -- change text size --
txtView.setTextSize(24);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

>> Khoa hoc lap trinh android co ban nang cao tai ha noi !
Theo sau nội dung của file res/values/style.xml để them định dạng CustomButtonStyle:
Mã:
[/SIZE][/COLOR][/FONT]
[SIZE=4][FONT=Georgia][COLOR=rgb(20, 20, 20)]<resources>
<!--Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go
here. -->
<item name="android:capitalize">characters</item>
<item name="android:typeface">monospace</item>
<item name="android:shadowDx">1.2</item>
<item name="android:shadowDy">1.2</item>
<item name="android:shadowRadius">2</item>
<item name="android:textColor">#494948</item>/>
<item name="android:gravity" >center</item>
<item name="android:layout_margin" >3dp</item>
<item name="android:textSize" >5pt</item>
<item name="android:shadowColor" >#000000</item>
</style>
<!-- Custom Style defined for the buttons. -->
<style name="CustomButtonStyle">
<item name="android:layout_width">100dp</item>
<item name="android:layout_height">38dp</item>
</style>
</resources>


Theo sau nội dung của file res/layout/activity_main.xml :
Mã:
[/SIZE][/COLOR][/FONT]
[SIZE=4][FONT=Georgia][COLOR=rgb(20, 20, 20)]<?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" >
<Button
android:id="@+id/button_s"
style="@style/CustomButtonStyle"
android:text="@string/button_small"
android:onClick="doSmall"/>
<Button
android:id="@+id/button_l"
style="@style/CustomButtonStyle"
android:text="@string/button_large"
android:onClick="doLarge"/>
<TextView
android:id="@+id/text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:capitalize="characters"
android:text="@string/hello_world" />
</LinearLayout>

Theo sau nội dung của file res/values/strings.xml để xác định hai hằng số mới:
Mã:
[/SIZE][/COLOR][/FONT]
[SIZE=4][FONT=Georgia][COLOR=rgb(20, 20, 20)]<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ThemeDemo</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="button_small">Small Font</string>
<string name="button_large">Large Font</string>
</resources>


Nội dung mặc định của file AndroidManifest.xml. Dưới đây chúng ta không cần phải thay đổi mọi thứ bởi vì chúng ta đã giữa tên của theme không thay đổi. Nhưng nếu bạn định nghĩa theme mới hoặc sửa đổi chúng với tên khác, sau đó bạn sẽ phải thay đổi tên AppTheme với tên mới.
Mã:
[/SIZE][/COLOR][/FONT]
[SIZE=4][FONT=Georgia][COLOR=rgb(20, 20, 20)]<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.guidemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.guidemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Chạy ứng dụng ThemeDemo của bạn.




------------------ || ------------------
Trung tâm Đào tạo hoc photoshop tai ha noi !
 
Загрузка...

Members online

No members online now.

Forum statistics

Threads
276,669
Bài viết
353,522
Thành viên
41,954
Thành viên mới nhất
namnhi1
Chuyển nhà trọn gói | Chuyển nhà trọn gói Bình Dương | Chuyển nhà Bình Dương | Xe tải chở hàng giá rẻ | Chuyển nhà Bình Dương | thi công quán cafe trọn gói | chuyển nhà trọn gói Bình Dương | Tỏi Lý Sơn
Top