自定义Spinner控件的背景(不是item的)
来源:互联网 发布:域名别名设置 编辑:程序博客网 时间:2024/04/29 18:26
世事无常,想我一年前连Java的类型都不清楚,现在却写起了我的第一篇Android技术微博。这么有纪念意义的事情,不分享一下怎么行?(^ _ ^)
最近在做一个项目,想要做出类似微信注册国家的效果,百度了很久,都没找到我想要的,加上我自己已经用spinner做出来了,但为了更好的用户体验(让整个条目都能点击)。
一直想要在spinner中添加图片并让文字居中。功夫不负有心人,在查阅结合众多资料后,终于成功了!现在粘上我实现的主要代码:
main.xml里的代码:
<Spinner
android:id="@+id/sp_province"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:entries="@array/selectprovince"
android:gravity="center"
android:background="@null"
/>
res\values\arrays.xml里的代码:
<string-array name="selectprovince">
<item>广东省</item>
<item>河北省</item>
<item>山西省</item>
<item>辽宁省</item>
<item>吉林省</item>
<item>黑龙江省</item>
<item>江苏省</item>
<item>浙江省</item>
<item>安徽省</item>
<item>福建省</item>
<item>江西省</item>
<item>山东省</item>
<item>河南省</item>
<item>湖北省</item>
<item>湖南省</item>
<item>海南省</item>
<item>四川省</item>
<item>贵州省</item>
<item>云南省</item>
<item>陕西省</item>
<item>甘肃省</item>
<item>青海省</item>
<item>台湾省</item>
<item>内蒙古自治区</item>
<item>广西壮族自治区</item>
<item>西藏自治区</item>
<item>宁夏回族自治区</item>
<item>新疆维吾尔自治区</item>
<item>香港特别行政区</item>
<item>澳门特别行政区</item>
<item>北京市</item>
<item>天津市</item>
<item>重庆市</item>
<item>上海市</item>
</string-array>
接下来是重中之重啦(我就是在这里卡了很久),这是在layout里建一个xml文件,这里不是寻常的相对布局或绝对布局的(╮(╯▽╰)╭被这货坑到了)
我在这里让文字居中了,然后设置textview的背景,最终就能让我想要的效果实现了。
<!-- spinner的样式 -->
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:textColor="#ffffff"
android:drawableRight="@drawable/select_pr"
/>
最后是Java代码(这是我百度的):
final ArrayAdapter<CharSequence> adapter = ArrayAdapter
.createFromResource(RegisterActivity.this,
R.array.selectprovince, R.layout.sp_style_province);
// 设置Spinner每个条目的显示样式
// 声明一个ArrayAdapter并获取对象,用于配置Spinner显示的信息。
// 对应参数说明:1.上下文变量;2.要显示的字符串Array;3.Spinner的显示样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// 为spinner绑定适配器,书写标题信息,绑定监听事件。
sp_province.setAdapter(adapter);
sp_province.setPrompt("省份:");
sp_province.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> av, View v, int position,
long id) {
// 获取所选的省份
String province = RegisterActivity.this.getResources()
.getStringArray(R.array.selectprovince)[position];
Toast.makeText(RegisterActivity.this, province,
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> av) {
//
}
});
好了,终于写完了,文章还有很多不完美之处,本人的技术也有限,热烈欢迎各位志同道合的朋友来指点交流!O(∩_∩)O谢谢!
- 自定义Spinner控件的背景(不是item的)
- 使得spinner和spinner中item有不同的背景图片-------自定义spinner,设计出你想要的spinner!
- 淡化自定义控件的背景
- android的spinner继承BaseAdapter设置选中和item不同的背景
- android Gridview 点击某个item 改变item的背景(不是点击效果是选中效果)
- Spinner控件的使用
- Spinner控件的使用
- Spinner控件的使用
- 控件Spinner的用法
- Spinner控件的学习
- spinner控件的使用
- Spinner控件的坑
- Spinner控件的学习
- 自定义Android的Spinner
- 自定义Android的Spinner
- 自定义Android的Spinner
- 自定义Android的Spinner
- 自定义Android的Spinner
- Python基本语法_文件操作_读写函数详解
- .tar.gz文件和.rpm文件的区别
- 磁盘文件最优存储问题
- iOS 配置app打开第三方app,分享基础
- nodejs 如何获取对方的IP地址
- 自定义Spinner控件的背景(不是item的)
- oculus rift in action 第一章 阅读笔记
- 最牛最新奶粉事件“争抢奶粉互殴”值得我们大家去深思
- C++迭代开发流程的理解
- An Implementation of Double-Array Trie
- Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting的解决方法
- 深入分析基于VCL派生的ActiveX控件的实现原理及应用
- 介绍一些有助于写出更好Go程序的工具
- 用中科院ICTCLAS2015分词器的java接口