`

个性化(Style/Theme)之ListView

阅读更多
1)Item分隔栏


只需要在Adapter中Override isEnabled Method, 在getView中设置其他相关的即可。

public class XXXItemAdapter extends BaseAdapter{
	private LayoutInflater minflater;
	private List<CommonViewHolder> list;
	public FinanceListItemAdapter(LayoutInflater inflater, List<CommonViewHolder> list) {
		super();
		this.minflater = inflater;
		this.list = list;
    }

	@Override
	public int getCount() {
		return  this.list.size();
	}

	@Override
	public boolean isEnabled(int position) {
		boolean result = true;
		if(position == 0 || position == 4 || position == 9 ) {
			result = false;
		}
		return result;
	}

	@Override
	public Object getItem(int position) {
		return  position < this.list.size()  ? this.list.get(position) : null;
	}

	@Override
	public long getItemId(int position) {
		return  position < this.list.size() ? this.list.get(position).id :  -1l;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		CommonViewHolder commHolder = null;
		   if(convertView == null) {
			    convertView = minflater.inflate(R.layout.list_common_item, null);
			    commHolder = new CommonViewHolder();
			    commHolder.text= (TextView)convertView.findViewById(R.id.more_item_text);
			    commHolder.sign = (ImageView)convertView.findViewById(R.id.more_item_sign);
			    commHolder.sign.setImageResource(R.drawable.go_next_icon);
			    commHolder.text.setTextColor(Color.BLACK);
			    convertView.setDrawingCacheBackgroundColor(Color.WHITE);
			    convertView.setTag(commHolder);
		   }else {
			   commHolder =  (CommonViewHolder) convertView.getTag();
		   }
		   commHolder.text.setText(this.list.get(position).text.getText());
		   if(position == 0 || position == 4 || position == 9 ) {
			   commHolder.sign.setImageDrawable(null);
			   convertView.setBackgroundColor(Color.GRAY);
		   }
		   return convertView;
	}

}


2)自定义背景(白色+圆角)

只需要配置XML即可。


four_white_corner_listview_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
   
    <item>        
       <shape xmlns:android="http://schemas.android.com/apk/res/android" 
                    android:shape="rectangle"> 
                   <stroke android:width="3dip" android:color="#ffffffff" /> 
                    <solid android:color="#ffffffff" /> 
                    <corners android:bottomRightRadius="6dip" 
                        android:bottomLeftRadius="6dip" 
                        android:topLeftRadius="6dip" 
                        android:topRightRadius="6dip" /> 
                </shape> 
    </item>
    
    
</selector>

更多Drawable用法参考: http://idunnolol.com/android/drawables.html


listview:

<ListView android:id="@+id/xxxx"
		      			android:layout_width="wrap_content"
		      			android:background="@drawable/four_white_corner_listview_bg"
		      			android:drawSelectorOnTop="false"
						android:cacheColorHint="#00000000"
						android:fitsSystemWindows="true"
						android:fastScrollEnabled="true"
		      			android:layout_height="125sp">
      				</ListView>


  • 大小: 11.7 KB
  • 大小: 15.9 KB
分享到:
评论

相关推荐

    全局背景修改教程

    在安卓系统中,个性化和定制化是许多用户追求的乐趣之一,而改变全局背景就是其中的一种方式。本教程将教你如何通过修改系统资源文件来实现全局背景的自定义,让壁纸的变化影响到系统的各个角落。 首先,你需要获取...

    android开发之定制标题栏 --- 附

    在Android应用开发中,自定义标题栏是一种常见的需求,它能帮助我们打造出具有独特风格的用户界面。本文将深入探讨如何在Android项目中实现...通过熟练掌握这些技术,开发者可以创造出符合应用风格的个性化标题栏。

    Android仿QQ界面效果的例子

    这些自定义视图能增强应用的个性化和功能性。例如,消息气泡通常用到ImageView和TextView的组合,并通过Shape Drawable或Vector Asset来实现不同的形状和颜色。头像视图可能包含圆形图片的实现,这可以通过设置...

    自定义的Spinner

    Spinner内部默认使用的是Spinner的默认ListView,但为了更个性化的显示,我们可以替换为自定义的ListView。自定义ListView可能涉及到复写`onMeasure()`方法以改变尺寸,或者创建自定义的列表项布局。此外,还可以...

    Android源码——UCWEB7.4 界面模仿源码.zip

    4. 高度可定制:UCWEB允许用户自定义界面主题、字体大小等,提升个性化体验。 三、源码分析 1. 布局文件解析:源码中的XML布局文件是实现UCWEB7.4界面的关键,通过阅读这些文件,我们可以了解到每个视图组件的属性...

    Android开发教程

    开发者可以通过设置样式(Style)和主题(Theme)来实现UI组件的个性化定制。 #### 菜单(Menu) 菜单是Android应用中常见的UI元素之一,用于组织和呈现应用的功能选项。Android提供了多种创建菜单的方式: - **...

Global site tag (gtag.js) - Google Analytics