android-控件样式(Theme)自定义

--------------布局分割线--------------------

实现界面(layout,控件,按钮等)中的分隔线:

<View  

    android:layout_width="fill_parent"  

    android:layout_height="1px"  

    android:background="?android:attr/listDivider"  

/>  

--------------布局分割线--------------------

 

------------------------------ListView-------------------------

android组建自定义笔记:

在ListView滚动条自定义:

android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"

android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"

scrollbar_vertical_track,crollbar_vertical_thumb自定义的xml文件,放在Drawable中,track是指长条,thumb是指短条,然后再xml中定义短条和长条的样式

设置快速滚动属性很容易:

android:fastScrollEnabled="true" 

android:focusable="true"

自定义ListView行间的分割线:

a、ListView中每个Item项之间都有分割线,设置android:footerDividersEnabled表示是否显示分割线,此属性默认为true。

b、改变ListView的分割线颜色和宽度,需要在布局中定义android:divider和android:dividerHeight属性。

 

如:使用属性android:divider="#FF0000"定义分隔符为红色,当然这里值可以指向一个drawable图片对象,如果使用了图片可能高度大于系统默认的像素,可以自己设置高度比如6个像素android:dividerHeight="6px"。

 

自定义的BaseAdapter中调用notifyDataSetChanged()方法会重新调用BaseAdapter的getView()方法。

 

用心的朋友应该会发现,listview中在设置了背景之后。会有些问题。

1.、listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。

2 、listview的上边和下边有黑色的阴影。

3、lsitview的每一项之间需要设置一个图片做为间隔。

针对以上问题 在listview的xml文件中设置一下语句。

问题1 有如下代码结解决 android:scrollingCache="false"

问题2 用如下代码解决:android:fadingEdge="none"  

问题3  用如下代码解决:  android:divider="@drawable/list_driver"  其中  @drawable/list_driver 是一个图片资源

------------------------------ListView-------------------------

 

-----------------------TabWidget-------------------------------

 

要实现自定义TAB,无非是要实现以下三点:

1.TAB的主背景:在TabWidget配置文件里设置background属性便可

2.TAB的item视图:在代码里设置,setIndicator(View view)是关键

3.TAB的ITEM选择效果:TAB的ITEM选择效果则依赖 myTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_background);

详情:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=146445

-----------------------TabWidget-------------------------------

 

 

-----------------------Spinner---------------------------------

在Android中Spinner就是下拉菜单,它相当于HTML中的<select>标签。

Android中提供的Spinner Widget下拉菜单已经非常好用了,样式也适用,

不过我们还是可以通过定义xml的方式来改变下拉菜单的样式。

l Spinner.getItemAtPosition(Spinner.getSelectedItemPosition());获取下拉列表框的值

l  调用setOnItemSelectedListener()方法,处理下拉列表框被选择事件,把AdapterView.OnItemSelectedListener实例作为参数传入

在layout目录下新建一个xml文件,名字随便(我这里叫myspinner.xml)。在这个文件里面可以定义下拉菜单的样式

我们这里采用TextView来实现

<?xml version="1.0" encoding="utf-8"?> 

<TextView 

xmlns:android="http://schemas.android.com/apk/res/android" 

android:id="@+id/text1" 

android:layout_width="wrap_content" 

android:layout_height="24sp" 

android:singleLine="true" 

style="?android:attr/spinnerDropDownItemStyle" /> 

 

在Activity中我们可以这样调用

private static final String[] countriesStr={"","","",""}

mySpinner = (Spinner) findViewById(R.id.mySpinner);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesStr);

adapter.setDropDownViewResource(R.layout.myspinner_dropdown);

mySpinner.setAdapter(adapter);

 

利用自定义的xml我们就可以很灵活的来改变下拉菜单的样式。

 

另外andorid也提供了两种基本的样式

android.R.layout.simple_spinner_item:TextView的下拉菜单

android.R.layout.simple_spinner_dropdown_item:右边带有radio的下拉菜单

-----------------------Spinner---------------------------------

你可能感兴趣的:(android)