TỰ TẠO THEME CHO ANDROID

     

Theme trong áp dụng Android

Theme hệt như style đã trình bày tại: nằm trong tính style vào Android, nó là tập hợp các định nghĩa tài nguyên, ở trong tính để áp dụng vào các bộ phận View. Chỉ có điều style có hiệu lực thực thi với bộ phận áp dụng nó, còn Theme bao gồm thể tùy chỉnh thiết lập ở các phần tử gốc và các thành phần con kế thừa và truy vấn vào các thuộc tính tự theme. Theme được tư tưởng trong style.xml với gán vào bộ phận bằng thuộc tính android:theme

Theme thường được gán vào các phần tử gốc, qua đó các thành phần con sẽ truy vấn thuộc tính theme, các phần tử gốc tốt gán theme đó là application hoặc Activity vào manifest. Ví như gán theme mang lại application, thì các Activity trong vận dụng mặc định kế thừa theme từ bỏ application, tương tự cho đến các View tạo nên từ Activity, chúng ta có thể gán Theme cho Activity hoặc những View gốc của layout nhằm mục đích sử dụng một theme khác với theme kế thừa.

Bạn đang xem: Tự tạo theme cho android

Sau đây sẽ thực hiện từng bước tạo nên và vận dụng một Theme

Hãy chạy apk Studio và tạo thành ứng dụng theo chủng loại Bottom Navigator Bottom đánh tên ThemeTuorial

*

Ứng dụng mẫu này sẽ đĩnh nghĩa sẵn một theme tên là AppTheme (xem trong styles.xml), theme này được gán vào application trong manifests (có nghĩa là các Activity phía trong application sẽ kế thừa theme này). Giờ đồng hồ hãy mở styles.xml xem một theme được tạo thành và có những thành phần nào.

Tạo một theme vào styles.xml

Vì một theme chứa không hề ít thuộc tính (màu sắc, kích thước, vị trí, font text ...) áp dụng mặc định bởi nhiều nhiều loại View (Button, TextView ...) trong apk nênkhi sản xuất một theme new thường kế thừa xuất phát từ một theme trực thuộc thư viện Android, tiếp đến tuỳ trở thành thêm bớt, thay đổi các nhân tố (Các tìm hiểu thêm hãy xem trên CÁC THUỘC TÍNH vào THEME).

Xem thêm: Mẫu Nhận Xét Đảng Viên Dự Bị Của Công Đoàn Đối Với Đảng Viên Dự Bị

Quay trở lại ví dụ trên, theme AppTheme thừa kế từ Theme.AppCompat.Light.DarkActionBar, tiếp nối nó kiểm soát và điều chỉnh lại những thuộc tínhcolorPrimary, colorPrimaryDark, colorAccent

Tương tự chúng ta có thể tạo ra Theme trang bị 2, và đặt thương hiệu là MyAppTheme theo cách tương tự, ta sẽ khái niệm lại một vài thành phần (theme đang có màu sắc loè loẹt để chúng ta dễ nhấn biết):

values/colors.xml (Định nghĩa màu đã dùng)

#008577 #00574B #D81B60 #FF8A80 #FF80AB #82B1FF #00C853 #C51162 #0091EA #B3E5FCvalues/styles.xml
Để vận dụng Theme new này, hãy gán thuộc tính theme của Activity trong manifests bởi tên của theme này, hoặc ráng thuộc tính theme của application trong manifests để toàn bộ các Activity thừa kế theme này, ví dụ:
AndroidManifest.xml hiệu quả chạy cùng với theme mới MyAppTheme

*

Chuyển đổi sang lại những Theme

Các Activety trước khi nạp layout (trước lúc chạy setContentView) có thể gọi cách làm setTheme(themeid), để Activity sử dụng một theme theo ID tài nguyên bạn chỉ ra. Ngoại trừ ra, chúng ta có thể lưu ID của theme dài lâu trong SharedPreferences để các lần chạy sẽ sử dụng theme mà bạn lưu. Ta sẽ thực hiện cách này để biến hóa qua lại thân 2 theme đang xuất hiện ở bên trên là R.style.AppTheme cùng R.style.MyAppTheme

Toàn bộ code trong onCreate của Activity

//ID của theme nhưng Activity sử dụngint themeIdcurrent;
Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); //Đọc ID theme đang lưu, nếu không lưu thì sử dụng R.style.MyAppTheme SharedPreferences locationpref = getApplicationContext() .getSharedPreferences("MainActivity", MODE_PRIVATE); themeIdcurrent = locationpref.getInt("themeid",R.style.MyAppTheme); //Thiết lập theme mang đến Activity setTheme(themeIdcurrent); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(new View.OnClickListener()
Override public void onClick(View v) //Chuyển đổi theme themeIdcurrent = themeIdcurrent == R.style.MyAppTheme ? R.style.AppTheme : R.style.MyAppTheme; //Lưu lại theme ID SharedPreferences locationpref = getApplicationContext() .getSharedPreferences("MainActivity", MODE_PRIVATE); SharedPreferences.Editor spedit = locationpref.edit(); spedit.putInt("themeid", themeIdcurrent); spedit.apply(); //Tạo lại Activity để áp dụng theme mởi đổi recreate(); ); mTextMessage = (TextView) findViewById(R.id.message); BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);Kết quả chạy ứng dụng:

*

Thêm quý giá thuộc tính trong theme

Ngoài việc tùy chỉnh cấu hình giá trị những thuộc tính ảnh hưởng đến những View vào theme (xem các thuộc tính tại CÁC THUỘC TÍNH trong THEME),bạn rất có thể mở rộng lớn theme chứa các thuộc tính chứa giá trị mới tiếp nối các View truy vấn để áp dụng thuộc tính này.

Xem thêm: Những Lời Chúc Sức Khỏe Hay, Ý Nghĩa Nhất Trong Mùa Dịch Covid

Tạo ra những tên ở trong tính new trong ứng dụng

Thường sẽ định nghĩa các tên thuộc tính trong file values/attrs.xml, một trực thuộc tính vẫn có cấu trúc khai báo như sau:


Trong đó format để luật loại dữ liệu của ở trong tính, có thể nhận những giá trị như: string, boolean, float, dimension (các size px, dp ...), reference (tham chiếu cho icon, image, drawable ...)
Ví dụ quan niệm tên nằm trong tính mới là myTextViewSize với myTextColor

values/attrs.xml

bởi thế theme tất cả thêm 2 trực thuộc tính với cái giá trị đi cùng, trong số View nếu như muốn sử dụng truy cập đến quý giá thuộc tính này thì sử dụng cú pháp lấy cực hiếm của ở trong tính Theme hiện tại "?tên_thuộc_tính"

Ví dụ:

Như vậy quý giá textSize và textColor của TextView bên trên được khẳng định từ Theme.

Từ nội dung bài viết này, đầy đủ để biết cách tạo và thực hiện Theme một biện pháp hoàn chỉnh, hãy tuỳ biến đổi để đa số thành phần nằm trong View áp dụng đều những thể thiết lập từ Theme, điều này khiến cho ứng dụng linh hoạt cực kỳ nhiều


Theme trong vận dụng AndroidTạo và áp dụng ThemeChuyển lật qua lại những ThemeThêm và áp dụng giá trị new trong theme
*

SQLite trong apk (phần 2) áp dụng SQLiteOpenHelper áp dụng SQLite trong android (phần 1) thực hiện ListView hiện thị tài liệu dạng danh sách trong game android Thuộc tính style trong số View lập trình android Sử dụng Broadcast Intent BroadcastReceiver trong apk Sử dụng RelativeLayout trong apk Tài nguyên Drawable (6) hình ảnh StateListDrawable trong apk Tài nguyên Drawable (5) ảnh LayerDrawable trong app android
Giới thiệuPrivacyTừ điển Anh - ViệtChạy SQLRegExpCubic-bezierUnix timestampKý trường đoản cú HTMLcalories, chỉ số BMRchỉ số khối khung hình BMITạo QR CodeLịch vạn niên liên hệ RSS

Đây là blog cá nhân, tôi biên chép và share những gì tôi học được tại đây về kiến thức lập trình PHP, Java, JavaScript, Android, C# ... Và những kiến thức technology khácDeveloped by onip.vn