Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 使用CSS控制Android控件的樣式--pixate-freestyle-android

使用CSS控制Android控件的樣式--pixate-freestyle-android

編輯:關於Android編程

介紹

介紹一個開源項目 pixate-freestyle-android

 

讓我們使用css的形式來控制Android的控件的樣式,支持的控件有

View (generic attributes support for all views) ImageView TextView CheckedTextView Button CompoundButton ImageButton ToggleButton RadioButton CheckBox Spinner ListView GridView EditText (support a non-editing mode) ActionBar (not in the View’s hierarchy, but almost completely supported)

使用

1.下載 JAR 包,導入工程
2.創建 default.cssassets
3.初始化:

Activity中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set the license (get it for free from www.pixate.com).
    // This should be done at least once in the main activity.
    Pixate.setLicenseKey(Your License Key, Your Email);

    // Initialize pixate for the Activity
    Pixate.init(this);

    setContentView(R.layout.main);
}

Fragment中

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Initialize pixate for the Fragment
    Pixate.init(getActivity());

    setContentView(R.layout.fragment);
}

為控件設置樣式

// Setting a class for a Button
Pixate.setStyleClass(button, myButton);

// Setting an ID for a Button
Pixate.setStyleId(button, myButtonId);

Button

#button1:pressed {
    background-image: url(pressed.svg);
}

這裡寫圖片描述

CheckBox and RadioButton<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjwvcD4NCjxwcmUgY2xhc3M9"brush:java;"> /* Default state (non-checked) */ #bt { background-image: url(unchecked-bg.svg); } /* Checked state */ #bt:checked { background-image: url(checked-bg.svg); } You can also control the check-mark or radio icon itself. To do so, we defined a virtual child named icon for that view: /* Default, non-checked, icon */ #bt icon { background-image: url(check-off.svg); background-size: 60; } /* Checked state icon */ #bt icon:checked { background-image: url(check-on.svg); background-size: 60; }

這裡寫圖片描述

ToggleButton

You can style toggle On and Off states by using the toggle virtual-child:

.toggle toggle:off {
    background-image: url(toggle-off.svg);
    background-size:  200px;
}

.toggle toggle:on {
    background-image: url(toggle-on.svg);
    background-size: 200px;
}

這裡寫圖片描述

ImageView and ImageButton

The ImageView and the ImageButton have some unique properties that can be styled via CSS.

這裡寫圖片描述

.imageView {
    tint: #450022FF;
    transform: matrix(0.70710677, -0.70710677, 0.70710677, 0.70710677, 0.0, 200.0);
    scale-type: matrix;
    background-size: 450px;
}
You can define the image that will be displayed in the ImageView by using the image virtual-child:

.imageView image {
    background-image: url(default.svg);
    background-size: 300px;
}
And you can easily define a state for that ImageView, making it react to clicking events. An ImageButton already has a pre-defined state for pressed, so setting the pressed state in the CSS will simply overwrite it.

.imageView image:pressed {
    background-image: url(pressed.svg);
    background-size: 300px;
}

這裡寫圖片描述

ListView

Styling a ListView consists of of properties that will be applied to the entire list, and properties that will target the list rows. We'll start by showing how to control the list dividers and setting an overscroll paint:

/* set a 5 pixel divider with a gradient color */
.myList {
    divider: linear-gradient(black, orange);
    divider-height: 5px;
}
/* set the overscroll drawables for the header and the footer */
.myList overscroll {
    distance: 200px;
    footer: linear-gradient(red, white);
    header: url(top-overscroll.png);
}
Note that the overscroll is handled by a virtual child named overscroll. It can accept header, footer and distance values to define the overscroll images and the distance that will be allowed to show them.

這裡寫圖片描述

Nth-Child

We can also access and style the nth-child of the list items to paint odd and even rows differently. This is done by using the nth-child pseudo-class.

/* every odd row */
.myList:nth-child(2n+1) {
    background-color: #006600;
}
/* every even row */
.myList:nth-child(2n) {
    background-color: #FF0000;
}

GridView

GridView styling includes properties that control column count, width and spacing.

A typical usage would be to simply set the column count and let Android take care of evenly spacing the columns.

.myGridView {
    column-count: 4;
}
For finer control, we can set the properties that affect width and spacing:

/* 4 cols, each 180 wide with gap of 50 between, and gap of 50 between rows too. */
.myGridView {
    column-count: 4;
    column-width: 180;
    column-gap: 50;
    column-stretch-mode: none; /* 'none' will leave the width as 180. Can also accept spacing, spacing-uniform or column-width */
    row-gap: 50;
}

這裡寫圖片描述

 

 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved