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

來源:互聯網
上載者:User

使用CSS控制Android控制項的樣式--pixate-freestyle-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中:

@Overrideprotected 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中

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    // Initialize pixate for the Fragment    Pixate.init(getActivity());    setContentView(R.layout.fragment);}
為控制項設定樣式
// Setting a class for a ButtonPixate.setStyleClass(button, myButton);// Setting an ID for a ButtonPixate.setStyleId(button, myButtonId);

Button

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

CheckBox and RadioButton<喎?http://www.bkjia.com/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;}

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.