Tự Tạo Theme Cho Android

Theme trong áp dụng Android

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

Theme thường xuyên được gán vào các bộ phận nơi bắt đầu, qua đó những thành phần bé đang truy cập ở trong tính theme, các bộ phận cội tuyệt gán theme chính là application hoặc Activity vào manifest. Nếu gán theme mang lại application, thì những Activity trong vận dụng khoác định thừa kế theme từ bỏ application, tương tự như cho tới những View tạo ra từ bỏ Activity, bạn cũng có thể gán Theme đến Activity hoặc những View gốc của layout nhằm mục đích thực hiện một theme không giống với theme kế thừa.

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

Sau đây đã triển khai mỗi bước tạo thành cùng vận dụng một Theme

Hãy chạy Android Studio và tạo nên vận dụng theo mẫu mã Bottom Navigator Bottom viết tên ThemeTuorial

*

Ứng dụng chủng loại này vẫn đĩnh nghĩa sẵn một theme tên là AppTheme (coi trong styles.xml), theme này được gán vào application vào manifests (có nghĩa là các Activity nằm trong application vẫn thừa kế theme này). Giờ hãy msinh sống styles.xml coi một theme được tạo nên với gồm các yếu tắc nào.

Tạo một theme trong styles.xml

Vì một theme đựng không ít thuộc tính (Màu sắc, kích cỡ, vị trí, font chữ ...) áp dụng mang định do các các loại View (Button, TextView ...) trong Android nênLúc sản xuất một theme bắt đầu hay kế thừa xuất phát điểm từ 1 theme thuộc tlỗi viện Android, sau đó tuỳ vươn lên là thêm sút, chuyển đổi các yếu tắc (Các tìm hiểu thêm hãy coi trên CÁC THUỘC TÍNH TRONG THEME).

Xem thêm: Micro Có Dây Zenbos Mz - Loa Karaoke Birici: Nhạc To, Không Lo Hết Pin

Quay quay lại ví dụ trên, theme AppTheme thừa kế từ bỏ Theme.AppCompat.Light.DarkActionBar, sau đó nó điều chỉnh lại các trực thuộc tínhcolorPrimary, colorPrimaryDark, colorAccent

Tương tự chúng ta có thể tạo thành Theme thứ 2, cùng đánh tên là MyAppTheme Theo phong cách tương tự, ta sẽ định nghĩa lại một số nhân tố (theme sẽ có Color lotrằn loẹt để chúng ta dễ dàng thừa nhận biết):

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

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

*

Chuyển trở qua lại những Theme

Các Activety trước khi nạp layout (trước lúc chạy setContentView) rất có thể call cách tiến hành setTheme(themeid), nhằm Activity áp dụng một theme theo ID tài nguyên các bạn chỉ ra rằng. Trong khi, bạn cũng có thể lưu lại ID của theme lâu dài hơn vào SharedPreferences để những lần chạy sẽ áp dụng theme mà lại bạn lưu giữ. Ta đang sử dụng bí quyết này nhằm chuyển đổi tương hỗ giữa 2 theme đang xuất hiện sinh hoạt trên là R.style.AppTheme cùng R.style.MyAppTheme

Toàn cỗ code trong onCreate của Activity

//ID của theme nhưng mà Activity sử dụngint themeIdcurrent;
Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); //Đọc ID theme đang lưu lại, trường hợp chưa giữ thì 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 thay đổ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 nhằm vận dụng theme mởi thay đổ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 giá trị ở trong tính trong theme

Ngoài việc tùy chỉnh thiết lập cực hiếm các ở trong tính tác động cho các View trong theme (xem những trực thuộc tính tại CÁC THUỘC TÍNH TRONG THEME),bạn có thể không ngừng mở rộng theme chứa các nằm trong tính cất quý hiếm bắt đầu tiếp nối những View truy cập để áp dụng thuộc tính này.

Tạo ra các tên ở trong tính mới vào ứng dụng

Thường đã quan niệm những tên thuộc tính trong file values/attrs.xml, một ở trong tính sẽ sở hữu cấu trúc khai báo nhỏng sau:


Trong đó format nhằm nguyên lý một số loại tài liệu của nằm trong tính, rất có thể thừa nhận các quý giá như: string, boolean, float, dimension (các form size px, dp ...), reference (tmê mẩn chiếu mang đến ibé, image, drawable ...)
ví dụ như khái niệm tên nằm trong tính bắt đầu là myTextViewSize cùng myTextColor

values/attrs.xml

Như vậy theme bao gồm thêm 2 thuộc tính với mức giá trị đi cùng, trong những View nếu muốn thực hiện truy cập mang lại giá trị thuộc tính này thì sử dụng cú pháp rước cực hiếm của thuộc tính Theme hiện thời "?tên_thuộc_tính"

Ví dụ:

bởi thế quý giá textSize và textMàu sắc của TextView trên được xác định từ bỏ Theme.

Từ nội dung bài viết này, đầy đủ để biết phương pháp tạo nên với sử dụng Theme một giải pháp hoàn chỉnh, hãy tuỳ biến hóa nhằm hồ hết thành phần trong View ứng dụng phần đông những thể thiết lập từ Theme, điều đó khiến áp dụng linh hoạt cực kỳ nhiều


Theme trong vận dụng AndroidTạo cùng vận dụng ThemeChuyển trở qua lại các ThemeThêm với áp dụng cực hiếm new trong theme
*

SQLite trong Android (phần 2) thực hiện SQLiteOpenHelper Sử dụng SQLite trong Android (phần 1) Sử dụng ListView hiện lên tài liệu dạng danh sách vào Android Thuộc tính style trong những View lập trình sẵn Android Sử dụng Broadcast Intent BroadcastReceiver vào Android Sử dụng RelativeLayout trong Android Tài nguyên Drawable (6) ảnh StateListDrawable vào Android Tài nguyên ổn Drawable (5) ảnh LayerDrawable trong 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 hận khung hình BMITạo QR CodeLịch vạn niên Liên hệ RSS

Đây là blog cá nhân, tôi ghi chnghiền và chia sẻ số đông gì tôi học tập được ở đây về kỹ năng và kiến thức lập trình sẵn PHPhường, Java, JavaScript, Android, C# ... cùng những kỹ năng và kiến thức công nghệ khácDeveloped by maylanhchuyennghiep.com