CSDN上有篇Android滚轮时间选择控件(可扩展自定义),阅读量很高,看来大家对这块的需要还是挺大的。版本迭代开发自测完,等待测试提bug。就抽空把项目需求,自己自定义的一个控件分享给需要的人。里面可以学习到Builder创建者模式,还有就是使用接口,一般新手可能不一定会使用。
先想吐槽一下,今天负能量有点多,端午想找人出去玩,都找不到,回家的回家,陪妹子的陪妹子。果然都是一伙重色轻友的人。我也得抓紧了。
好吧,进入正题。先来看看效果图。
1.Hello World是一个TextView控件,用于显示从弹窗选择的内容。里面控件的背景色,标题,文字大小颜色都可以自定义。实际项目中可以用于比如android长按的时候,弹出一些选择的操作,还有就是一些金额选择等等。
主界面
选择弹窗
选择结果
实际项目中
2.布局文件
<?xml version="1.0" encoding="utf-8"?>
3.主界面操作
package andrew.selectdialogdemo;import android.app.Activity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity { private TextView mShowTextView; private Button mSureButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mShowTextView = (TextView) this.findViewById(R.id.show_tv); mSureButton = (Button) this.findViewById(R.id.sure_btn); mSureButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //配置数据源 final List list = new ArrayList(); list.add("美女你好"); list.add("帅哥你好"); list.add("世界你好"); //构造实例化选择弹窗 SelectDialog chooseDialog = new SelectDialog.Builder(MainActivity.this) .setDataList(list) .setButtonColor(getResources().getColor(R.color.text_10)) .setButtonSize(14) .setLastButtonSize(14) .setTitleText("编辑选择") .build(); //对选择弹窗item点击事件监听 chooseDialog.setButtonListener(new BaseNoticeWindow.OnButtonListener() { @Override public void onSureListener(View v) { mShowTextView.setText(list.get((Integer) v.getTag())); } @Override public void onDiscardListener(View v) { } @Override public void onDismissListener(View v, int nType) { } }); chooseDialog.show(mShowTextView); } }); }}
4.重头戏,选择弹窗SelectDialog
package andrew.selectdialogdemo;import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.text.TextUtils;import android.view.Gravity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.LinearLayout;import android.widget.LinearLayout.LayoutParams;import android.widget.TextView;import java.util.ArrayList;import java.util.List;/** * 选择弹框 * Created by liuhongxia on 2016/05/30 */public class SelectDialog extends BaseNoticeWindow implements View.OnClickListener { private List mDataList = new ArrayList(0); private Context mContext; private String mTitleText = null; private int mTitleBackgroundColor = -1; private int mTitleTextColor = Color.WHITE; private int mButtonColor = -1; private int mTitleTextSize; private int mButtonSize; private int mLastButtonSize; private ArrayList
5.总结
对于在代码里面写view,可能有些新手会觉得看上去有点吃力,最简单直接的方法就是,把代码里的view弄成xml布局,这样就会更加方便直接。
转载请注明转自:http://blog.csdn.net/u011176685/article/details/51546404
简书博客:http://www.jianshu.com/p/874a8736cbd0
demo下载地址:http://download.csdn.net/detail/u011176685/9536658
- Android(安卓)自定义textview 部分文字字体颜色高亮
- Android(安卓)CheckBox 修改选择框
- 【Android】ColorPickerDialog 自定义颜色选择器的实现
- Android应用设计提示:关于资源对象
- Android视频背景,动态背景,Android用视频做背景的轻松实现
- Android(安卓)UI设计系列之自定义TextView属性实现带下划线的文
- Android绘制(三):Path结合属性动画, 让图标动起来!
- Android视图控件属性layout_weight的作用
- Android(安卓)文件选择器详解及实例代码
随机推荐
-
android 编译问题 java 和 javac 版本不
-
Android长度单位详解(dp、sp、px、in、pt
-
ProgressBar简介
-
Eclipse搭建Android开发环境
-
Android之LinearLayout(线性布局)
-
Ubuntu下安装Android SDK
-
Android开发经验总结——对话框的使用
-
Android Studio 关联项目软链接
-
MMKV记录
-
我的Android进阶之旅------>Android获取