android组件样式,使用CSS控制Android控件的样式pixatefreestyleandroid -电脑资料

介绍

介绍一个开源项目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.css在assets

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 RadioButtonvc3Ryb25nPjwvcD4NCjxwcmUgY2xhc3M9"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;}

ToggleButtonYou 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 ImageButtonThe 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;}

ListViewStyling 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-ChildWe 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;}

GridViewGridView 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;}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值