关闭

Android第三方开源下拉框:NiceSpinner

标签: android
10541人阅读 评论(6) 收藏 举报
分类:


Android第三方开源下拉框:NiceSpinner

Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定制或者第三方设计的下拉框Spinner。
NiceSpinner是一个第三方开源的下拉框Spinner,其在github上的项目主页是:https://github.com/arcadefire/nice-spinner
NiceSpinner原设计效果如动图所示:


但是通常开发者对于可能还需要对于下拉框中出现的文字和样式进行二次开发,比如如果希望NiceSpinner的选中文本颜色或者下拉弹出框中的文字有些变化,则需要重新二次定制NiceSpinner code项目中的NiceSpinnerBaseAdapter, NiceSpinnerBaseAdapter中的getView返回的view表现形式即为下拉框中的结果:

//这个方法将返回下拉列表的形制,可以在这里修改和二次定制开发。
    //zhang phil 注解
    @Override
    @SuppressWarnings("unchecked")
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView textView;

        if (convertView == null) {
            convertView = View.inflate(mContext, R.layout.spinner_list_item, null);
            textView = (TextView) convertView.findViewById(R.id.tv_tinted_spinner);

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                textView.setBackground(ContextCompat.getDrawable(mContext, mBackgroundSelector));
            }

            convertView.setTag(new ViewHolder(textView));
        } else {
            textView = ((ViewHolder) convertView.getTag()).textView;
        }

        textView.setText(getItem(position).toString());
        textView.setTextColor(mTextColor);
        
        //这里是被zhang phil修改的,用于改变下拉列表的文字颜色。
        textView.setTextColor(Color.RED);

        return convertView;
    }


修改后,写一个小demo演示,测试的MainActivity.java:

package zhangphil.demo;

import java.util.Arrays;
import java.util.LinkedList;
import org.angmarch.views.NiceSpinner;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;


public class MainActivity extends Activity {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);

		NiceSpinner niceSpinner = (NiceSpinner) findViewById(R.id.nice_spinner);
		niceSpinner.setTextColor(Color.GREEN);

		LinkedList<String> data=new LinkedList<>(Arrays.asList("Zhang", "Phil", "@", "CSDN"));
		niceSpinner.attachDataSource(data);
	}	
}


布局文件:

<RelativeLayout 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"
    tools:context="zhangphil.demo.MainActivity" >

    <org.angmarch.views.NiceSpinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:id="@+id/nice_spinner" />

</RelativeLayout>



代码运行结果:



我把NiceSpinner的代码库(library和实例demo)全部作为一个文件目录push到github上面,项目主页是:https://github.com/zhangphil/zhangphil-nice-spinner


4
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

android实现下拉框(spinner),自定义大小颜色背景位置

1. 实现最简单的spinner xml文件,有一个TextView,一个Spinner: <RelativeLayout xmlns:android="http://schemas.android....
  • yi412
  • yi412
  • 2017-03-24 15:02
  • 1733

Android 之 下拉框(Spinner)的使用

原始链接:http://imshare.iteye.com/blog/770950 下拉列表 Spinner。 Spinner的使用,可以极大提高用户的体验性。当需要用户选择的时候...
  • llnara
  • llnara
  • 2014-03-07 16:29
  • 1186

Android 使用PopupWindow实现下拉列表

来看效果图:在实现这个效果前,先来了解下PopupWindow的常用方法构造方法在实例化PopupWindow窗口时,需要我们自己传入窗口的界面视图和窗口的尺寸 实例化PopupWindow的方法常...
  • zhuwentao2150
  • zhuwentao2150
  • 2016-08-10 22:34
  • 7288

Android下拉列表框

周末翻了翻书,发现才歇了一两个月,好多看的东西又dou
  • pfe_Nova
  • pfe_Nova
  • 2014-08-03 23:04
  • 27382

NiceSpinner 完美的 Android 下拉选择框

如今,好多 App 都有下拉选择框的需求,今天这个第三方下拉框可以满足我们大部分的需求噢! 先来看一下效果图: 1,在 build.gradle 文件添加:allprojects { re...
  • duoduo_11011
  • duoduo_11011
  • 2017-12-28 15:33
  • 167

Android很nice的Spinner(NiceSpinner)

import android.content.Context; import android.util.AttributeSet; import android.util.DisplayMetrics...
  • chunho
  • chunho
  • 2016-05-10 09:36
  • 2401

安卓实现spinner下拉列表以及实现它点击事件

第一步添加文本内容,list.add(),第二步为数组适配器制定主体样式,为spinner的item样式,里面为list的内容。第三步为适配器设置下拉菜单样式 adapter.setDropDown...
  • kongAndroid
  • kongAndroid
  • 2015-11-28 08:26
  • 14698

Android UI控件-Spinner(下拉列表)

package com.example.widgets;   import android.os.Bundle; import android.app.Activi...
  • qq_36255612
  • qq_36255612
  • 2016-12-12 16:18
  • 637

android中自定义下拉框

android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在...
  • a497393102
  • a497393102
  • 2013-07-09 12:03
  • 59818

Android自定义控件+popuwindow下拉菜单的实现仿58下拉菜单

网上有很多此类的案例,不过第一次做这样的下拉菜单,还是琢磨了几天,仿造58下拉菜单的效果,具体效果如下所示(上层是popuwindow,下层是灰色的遮罩层): 转载地址: htt...
  • zhaihaohao1
  • zhaihaohao1
  • 2016-06-01 14:27
  • 4958
    个人资料
    • 访问:1514925次
    • 积分:19942
    • 等级:
    • 排名:第491名
    • 原创:545篇
    • 转载:13篇
    • 译文:2篇
    • 评论:323条
    关于我
    邮箱: zhangphil@live.com
    博客专栏