当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 手机App开发
分享到: 
收藏 +0
2
这段代码目前已经加在我的一个jar包androidkit中,还没发布。
适用于android1.6以上,不依赖其他jar包

使用时不需要继承这里的RoundListAdapter。只需要在你实现了ListAdapter的类中,传入一个RoundParams的对象,并在getView方法返回前调用这里RoundListAdapter类提供的静态方法。
RoundListAdapter.setItemBackground(position, switcherView, mParams,
getCount());

标签: <无>

代码片段(2) [全屏查看所有代码]

1. [代码]     跳至 [1] [2] [全屏预览]

/*
 * @(#)RoundListAdapter.java		       Project:com.sinaapp.msdxblog.androidkit
 * Date:2012-12-6
 *
 * Copyright (c) 2011 CFuture09, Institute of Software, 
 * Guangdong Ocean University, Zhanjiang, GuangDong, China.
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.lurencun.cfuture09.androidkit.widget.roundlist;

import android.view.View;
import android.widget.ListAdapter;

/**
 * @author Geek_Soledad (66704238@51uc.com)
 */
public abstract class RoundListAdapter implements ListAdapter {
	/**
	 * 圆角ListView的参数类。定义了顶部背景,底部背景,中间背景及单独一个时的背景。
	 * 
	 * @author msdx
	 * 
	 */
	public static class RoundParams {
		public int topResid;
		public int middleResid;
		public int bottomResid;
		public int lonelyResid;

		public RoundParams(int topResid, int middleReside, int bottomResid,
				int lonelyResid) {
			this.topResid = topResid;
			this.middleResid = middleReside;
			this.bottomResid = bottomResid;
			this.lonelyResid = lonelyResid;
		}
	}

	public static void setItemBackground(int position, View item,
			final RoundParams mParams, final int count) {
		if (count == 1) {
			item.setBackgroundResource(mParams.lonelyResid);
		} else if (position > 0 && position < count - 1) {
			item.setBackgroundResource(mParams.middleResid);
		} else if (position == 0) {
			item.setBackgroundResource(mParams.topResid);
		} else {
			item.setBackgroundResource(mParams.bottomResid);
		}
	}
}

2. [代码]使用示例     跳至 [1] [2] [全屏预览]

/*  
 * @(#)LocalAdapter.java              Project:RTKSETTINGS  
 * Date:2013-1-9  
 *  
 * Copyright (c) 2013 Geek_Soledad.  
 * All rights reserved.  
 *  
 * Licensed under the Apache License, Version 2.0 (the "License");  
 *  you may not use this file except in compliance with the License.  
 * You may obtain a copy of the License at  
 *  
 *     http://www.apache.org/licenses/LICENSE-2.0  
 *  
 * Unless required by applicable law or agreed to in writing, software  
 * distributed under the License is distributed on an "AS IS" BASIS,  
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
 * See the License for the specific language governing permissions and  
 * limitations under the License.  
 */
package com.realtek.msdx.rtksettings.view;

import java.util.ArrayList;
import java.util.List;

import android.app.TvManager;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

import com.lurencun.cfuture09.androidkit.widget.roundlist.RoundListAdapter;
import com.lurencun.cfuture09.androidkit.widget.roundlist.RoundListAdapter.RoundParams;
import com.realtek.msdx.rtksettings.activity.MainActivity;
import com.realtek.msdx.rtksettings.bean.LocalSettingsBean;

/**
 * @author Geek_Soledad (msdx.android@tom.com)
 */
public class LocalAdapter extends BaseAdapter {

	private RoundParams mParams;
	private Context mContext;

	public LocalAdapter(Context context, RoundParams params) {
		super();
		mContext = context;
		mParams = params;
	}

	@Override
	public int getCount() {
		return 5;
	}

	@Override
	public Object getItem(int position) {
		return position;
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// 在这里创建view,
		//SwitcherTextView view = new SwitcherTextView(mContext);
		// 然后在返回view前进行调用
		RoundListAdapter.setItemBackground(position, view, mParams,
				getCount());
		return view;
	}
}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(34)

  • 1楼:数据库维护 发表于 2013-03-24 00:11 回复此评论
    没提供源码下载?
  • 2楼:朱毛毛 发表于 2013-03-26 17:45 回复此评论
    无图无真相 。。。。
  • 3楼:精神科主任 发表于 2013-04-01 14:38 回复此评论
    上图吧,楼主
  • 4楼:我是一段代码 发表于 2013-04-10 17:28 回复此评论
    一般都是无图无真相。。。。。
  • 5楼:陈少军 发表于 2013-04-12 11:00 回复此评论
    这个是你的邮箱吗?LZ怎么我发邮件没有回的? 66704238@51uc.com
  • 6楼:貌似掉线 发表于 2013-04-15 10:37 回复此评论

    引用来自“wuhaibin1212”的评论

    没提供源码下载?
    https://github.com/msdx/androidkit/blob/master/src/com/lurencun/cfuture09/androidkit/widget/roundlist/RoundListAdapter.java、
  • 7楼:貌似掉线 发表于 2013-04-15 10:37 回复此评论

    引用来自“wuhaibin1212”的评论

    没提供源码下载?
    https://github.com/msdx/androidkit
  • 8楼:貌似掉线 发表于 2013-04-15 11:27 回复此评论

    引用来自“陈少军”的评论

    这个是你的邮箱吗?LZ怎么我发邮件没有回的? 66704238@51uc.com
    是我的邮箱,不过用得不多,可能是因为太过公开的关系,垃圾邮件特别多。 刚才查了一下,貌似没有看到你的邮件,倒是垃圾邮件又多个无数封。
  • 9楼:panming009237 发表于 2013-05-15 19:59 回复此评论
    吊人胃口,垃圾
  • 10楼:呵呵233 发表于 2013-06-20 15:45 回复此评论

    引用来自“panming009237”的评论

    吊人胃口,垃圾
    你不是垃圾,那麻烦你共享一个我们看看?尊重别人劳动知道不?对于这种上来就咬人的畜生,我只想说一个字“滚”
  • 11楼:lingna 发表于 2013-07-05 17:10 回复此评论

    引用来自“panming009237”的评论

    吊人胃口,垃圾
    就是,有本事自己写!
  • 12楼: 发表于 2013-07-29 21:44 回复此评论
    推荐好技术网:  http://www.baisoujs.com
  • 13楼:xesam 发表于 2013-08-05 19:28 回复此评论
    为什么你的示例大多是空的。。。
  • 14楼:有初啊 发表于 2013-09-29 14:16 回复此评论
    代码逻辑应该是有问题的吧,  RoundListAdapter是abstract class, 而里面又都是static成员/方法, 木有看懂为什么要这么写....

    弱弱的问一句, 圆角处理是在getView里做的吗? 还是通过异步方式去处理的? 
    如果非异步, 可能会造成ListView在滚动时顿卡哦....

    ListView异步加载图片, 可以参考 https://github.com/nostra13/Android-Universal-Image-Loader
  • 15楼:有初啊 发表于 2013-09-29 14:27 回复此评论
    才发现一个问题, LZ的这个东东只适用于非Image类型的文本/按钮等控件, 如果只是要实现这类型控件的圆角效果, 直接在xml定义背景就可以了吧....

  • 16楼:isfreedom 发表于 2013-10-11 16:07 回复此评论
    先有图才会感兴趣.
  • 17楼:六六七七 发表于 2013-10-15 11:56 回复此评论
    k俺不懂
  • 18楼:子枫 发表于 2013-10-21 10:34 回复此评论
    这真的可以实现吗?别欺负菜鸟啊
  • 19楼:滕达Roid 发表于 2013-10-29 11:06 回复此评论
    确实可以实现,只是给ListView的每一个item分别设置一张背景图,但是需要在资源文件中准备四张背景图,考虑到性能问题,还是有点不放心。
  • 20楼:pmtoam 发表于 2013-11-06 15:25 回复此评论
    可以使用selector代替。
开源从代码分享开始 分享代码
貌似掉线的其它代码 全部(4)...