zoukankan      html  css  js  c++  java
  • 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---------------------------------

  • 相关阅读:
    C#中的委托,匿名方法和Lambda表达式
    模式化窗口问题![window.dialogArguments]
    js动态改变HiddenField值,后台不能获取值的问题
    将DataTable进行分页并生成新的DataTable
    出错提示为:该行已经属于另一个表 的解决方法
    如何在服务器端获得showModalDialog传递的参数
    Synchronized和SyncRoot与 集合类 的同步
    Oracle中数据出现####的问题
    如何防止多次提交按钮造成重复提交
    Invoke and BeginInvoke
  • 原文地址:https://www.cnblogs.com/fx2008/p/3133210.html
Copyright © 2011-2022 走看看