高亮关键词,仿淘宝
来源:互联网 发布:ksweb支持java 编辑:程序博客网 时间:2024/04/28 04:57
前段时间有人问类似淘宝的高亮关键词怎么做(如下图)
今天做了一个简单的demo 实验了一下,在这里记录分享一下。
首先布局文件如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >// 关键字 <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="ni" > </TextView> <ListView android:id="@+id/ls" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView></LinearLayout>
MainActivity 如下
public class MainActivity extends Activity { private ListView lView; private TextView tv; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.demo); lView = (ListView) findViewById(R.id.ls); tv = (TextView) findViewById(R.id.tv); // 数据源 ArrayList<String> strList = new ArrayList<String>(Arrays.asList( "nicaiyicai", "woshi ni", "woburenshinia")); adapter = new MyAdapter(this, strList, (String) tv.getText()); lView.setAdapter(adapter); }}
都做好了,看一下MyAdapter 的代码,最主要的逻辑都在MyAdapter 里,如下:
public class MyAdapter extends BaseAdapter { private Context mContext; // 上下文 private ArrayList<String> strList;// 数据 private String flag; // 关键词,当然也可以改成数组 随你喜欢 public MyAdapter(Context mContext, ArrayList<String> strList, String flag) { super(); this.mContext = mContext; this.strList = strList; this.flag = flag; } @Override public int getCount() { return strList != null ? strList.size() : 0; } @Override public Object getItem(int position) { return strList != null ? strList.get(position) : null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int arg0, View arg1, ViewGroup arg2) { TextView tv = new TextView(mContext); String str = strList.get(arg0);// 这里是关键// 使用SpannableString 对象进行格式化// 至于你能通过 SpannableString 进行多少种效果,如下 /** 引自官方 http://developer.android.com/reference/android/text/style/CharacterStyle.htmljava.lang.Object ↳ android.text.style.CharacterStyleKnown Direct Subclasses (直接已知子类) BackgroundColorSpan, ClickableSpan, ForegroundColorSpan, MaskFilterSpan, MetricAffectingSpan, RasterizerSpan, StrikethroughSpan, SuggestionSpan, UnderlineSpanKnown Indirect Subclasses (简介已知子类) AbsoluteSizeSpan, DynamicDrawableSpan, ImageSpan, LocaleSpan, RelativeSizeSpan, ReplacementSpan, ScaleXSpan, StyleSpan, SubscriptSpan, SuperscriptSpan, TextAppearanceSpan, TypefaceSpan, URLSpan*/Class Overview SpannableString span = new SpannableString(str); span.setSpan(new ForegroundColorSpan(Color.rgb(255, 0, 0)), str.indexOf(flag), str.indexOf(flag) + flag.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE); tv.setPadding(50, 50, 50, 50); tv.setText(span); return tv; }}
0 0
- 高亮关键词,仿淘宝
- 高仿淘宝客户端
- 高仿淘宝客户端
- 高仿淘宝界面
- 高仿淘宝下拉刷新控件
- 高仿淘宝商品详情标题栏渐变
- Android 购物车 高仿淘宝
- 高亮显示关键词
- 关键词高亮显示
- html页面高亮关键词
- 【开发经验】高仿并优化淘宝首页运营广告位
- 高仿淘宝购物车分分钟让你集成
- 【转】高仿淘宝首页,仿真度很高,大家学习下
- Android 小样之高仿淘宝时间轴物流信息
- 自定义View系列:高仿“淘宝头条”
- Android自定义之高仿淘宝下拉刷新
- 一个高仿淘宝的支付密码框
- 高仿淘宝购物车分分钟让你集成
- Wolves Have Local Howl Accents
- nodejs colors模块 设置控制台log颜色
- HTML5基础课堂,无技术的请进
- #pragma once与#ifndef两种防止头文件二次编译的区别
- lvm逻辑卷
- 高亮关键词,仿淘宝
- 一行jQuery全选全不选
- eclipse中使用git
- Android上层访问HAL层(呼吸灯测试代码)
- iOS OC readOnly 和属性 详解
- Nhibernate 基础入门知识 CRUD 数据库表
- JAVA中获取当前系统时间
- mac下安装SCons
- 理解RESTful架构