文档章节

android spinner 样式完全自定义[包括RadioButton和RatingBar效果]

cnyuan
 cnyuan
发布于 2015/01/04 13:09
字数 601
阅读 333
收藏 1

点击效果图

主布局文件activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/adasad"
    android:padding="20dp" >
    <Spinner
        android:layout_marginTop="40dp"
        android:id="@+id/spinner1"
        style="@style/spnner_divider_style"
        android:layout_width="match_parent"
        android:gravity="center_vertical|right"
        android:layout_height="wrap_content" 
        android:background="@null"
        android:spinnerMode="dropdown"
        android:prompt="@string/planet_prompt"
        android:popupBackground="@android:color/transparent"
        android:dropDownVerticalOffset="10dp"/>
    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" 
        android:layout_marginTop="30dp">
    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:drawableLeft="@drawable/style_select_sex"
        android:layout_height="wrap_content"
        android:button="@null"
        android:text=" 男" 
        android:checked="true"/>
    <RadioButton
        android:layout_marginLeft="20dp"
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:drawableLeft="@drawable/style_select_sex"
        android:layout_height="wrap_content"
        android:button="@null"
        android:text=" 女" />
    </RadioGroup>
    <!-- style="?android:attr/ratingBarStyle" -->
    <RatingBar 
        style="@style/comment_ratingbar_style"
        android:layout_marginTop="30dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:stepSize="1"
        android:numStars="5"
        android:rating="1"/>
</LinearLayout>

 

shape_spinner_bg.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 
gradient 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度开始变。
solid 填充。
stroke 描边。
corners 圆角。
padding 定义内容离边界的距离。 与android:padding_left、android:padding_right这些是一个道理 
-->
<solid android:color="#d7000f" />
<stroke
android:width="1dp"
android:color="#919191" /> 
<corners
android:radius="3dp"/>
</shape>

 

shape_spinner_dropbg.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">    
   
    <solid android:color="#FFFFFF" />
    <stroke
        android:width="1dp"
        android:color="#d7000f" />  
    
    <corners
        android:radius="3dp"/>
</shape>

 

style_select_sex.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/order_checked" android:state_checked="true"/>
    <item android:drawable="@drawable/order_checked" android:state_pressed="true"/>
    <item android:drawable="@drawable/order_discheck"/>
</selector>

说明:spinner样式设置时请注意在AndroidManifest.xml添加theme设置如:

<activity
            android:name="com.yuan.widget.activity.MainActivity"
            android:label="@string/app_name" 
            android:theme="@style/spnner_divider_style">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

MainActivity.java 类文件代码

package com.yuan.widget.activity;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Spinner;
public class MainActivity extends Activity {
	
	private Spinner spinner1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		spinner1  = (Spinner) findViewById(R.id.spinner1);
		radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
		
		
		ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
	            this, R.array.planets_array, R.layout.item_spinner_defalut);
		adapter.setDropDownViewResource(R.layout.item_spinner_dropdown);
		spinner1.setAdapter(adapter);	
		
	}
	
}

代码实例下载:

http://download.csdn.net/detail/yuan_love/8313911

 注明:文章中引用的图片来自网络,如果侵犯了作者的权益,请通知本人,本人即刻处理

© 著作权归作者所有

cnyuan
粉丝 1
博文 1
码字总数 601
作品 0
长沙
程序员
私信 提问
更换 Android 默认的 RatingBar 图片

RatingBar是我们在系统显示分数的好组件,但是我们一般想把RatingBar装饰的更好看,想把更好看的图片用来替换系统默认的图片,系统默认的样子是这样的: 下图是个不错的选择哦: 想要实现如上...

鉴客
2010/06/21
625
1
Android自定义RatingBar(评分控件)

RatingBar简单介绍 RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键(比如遥控器)来设置评分,...

zhoulc
2013/05/02
80.8K
8
一起学Android之ProgressBar

本文简述在Android开发中进度条(ProgressBar)的常见应用,仅供学习分享使用。 概述 在Android开发中,进度条的使用场景有很多,如播放电影时可拖动的观看进度条,评分时使用的评分条,上传下...

Alan.hsiang
01/05
0
0
Rexsee新版发布,支持Android原生UI布局

开源移动Web开发平台Rexsee于今天正式发布最新版本,支持以JS调用的方式实现Android原生UI布局,对于界面展现、交互体验以及执行效率均有显著提升。 目前大部分的移动Web开发框架由于WebView...

yejiang
2012/02/14
2.2K
0
Android控件之SeekBar RatingBar

不知道大家有没有遇到过,在听一首歌时,我们可以随意改变歌曲的进度,在听完歌后可以对这首歌进行评分,在开发中,要实现这两个功能,就要用到两个控件,分别是SeekBar和RatingBar。下面我将...

鉴客
2011/12/01
403
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
34分钟前
4
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
36分钟前
5
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部