Toggle Theme Editor
Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Charcoal

[hướng dẫn] Color State List

Discussion in 'Hướng dẫn lập trình Android' started by hoithegiantinhlagi, 19/7/13.

  1. hoithegiantinhlagi

    hoithegiantinhlagi Active Member

    Hôm nay mình sẽ hướng dẫn các bạn sử dụng Color State List.
    1. Định nghĩa:
    Color State List là một object bạn định nghĩa ra để sử dụng như là 1 color, nhưng thường thì được dùng để thay đổi màu sắc tùy thuộc vào trạng thái của các object được áp dụng nó.​
    2. Cách dùng:
    + Để dùng các bạn tạo ra 1 folder trong res tên là color, rồi tại file xml đặt tên gì cũng được.​
    + Cách tham chiếu:
    - Trong Java: R.color.filename
    - Trong XML: @[package:]color/filename
    + Cú pháp:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item
            android:color="hex_color"
            android:state_pressed=["true" | "false"]
            android:state_focused=["true" | "false"]
            android:state_selected=["true" | "false"]
            android:state_checkable=["true" | "false"]
            android:state_checked=["true" | "false"]
            android:state_enabled=["true" | "false"]
            android:state_window_focused=["true" | "false"] />
    </selector>
    Trong đó:
    android:state_pressed: là biến kiểu boolean, mang giá trị "true" nếu object được nhấn.

    android:state_focused: tương tự nhưng khi object được chỉ thị tức là khi dùng con chuột chỉ vào object.

    android:state_selected: tương tự nhưng khi object được lựa chọn.

    android:state_checkable: tương tự nhưng khi object là loại có thể check ví dụ như mấy cái ô cho đánh dấu tick vào đó.

    android:state_checked: giống vậy nhưng là khi object đã được check.

    android:state_enabled: như trên nhưng khi object đã được enable, tức là những loại nút có 2 chế độ on-off đó.

    android:state_window_focused: cái này đặt biệt nhất là nó sẽ true khi cửa sổ ứng dụng đang hiện thị trên hết tức là mình đang thao tác trên ứng dụng đó, còn nó sẽ false khi cửa sổ ứng dụng bị chìm xuống giống như khi đang dùng nhưng có một tin nhắn đến chẳng hạn.

    3. Cách dùng:
    Ở đây mình sẽ làm một app nhỏ thôi là có 1 cái nút thôi, bình thường khi chỉ trỏ đến nó thì nó sẽ có màu khác, khi bắm có màu khác, và ko làm gì nó hết thì sẽ có màu mặc định.
    B1: Tạo một file button_color.xml trong folder color, rồi code như sau:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_pressed="true"
    
              android:color="#ff00ff00"/> <!-- pressed -->
    
        <item android:state_focused="true"
    
              android:color="#ff0000ff"/> <!-- focused -->
    
        <item android:color="#ff000000"/> <!-- default -->
    
    </selector>
    
    
    Lưu ý: tất cả màu sắc ở đây đều phải dùng mã hexa và được hỗ trợ trong các bảng mã màu sau:
    • #RGB
    • #ARGB
    • #RRGGBB
    • #AARRGGBB
    Sau đó vào layut sửa lại layout main như sau:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
        android:orientation="vertical"
    
    android:layout_width="fill_parent"
    
        android:layout_height="fill_parent">
    
    <Button
    
        android:layout_width="fill_parent"
    
        android:layout_height="wrap_content"
    
        android:text="@string/button_text"
    
        android:textSize="25px"
    
        android:textColor="@color/button_text"
    
    />
    
    </LinearLayout>
    
    
    B2: Tất cả các bạn cần tập trung vì đây là bước khó nhất và phức tạp nhất đồng thời rất dài.
    Vào chỉnh trong code Java như sau:
    Code:
    setContentView(R.layout.main);
    Sao rất là phức tạp đúng ko?=))
    Xong hết bài giờ bấm chạy la ok! goodbye my love!>:)






     
    JackV likes this.

Chia sẻ trang này

Loading...