控件
Luckie stone
Android应用开发。
展开
-
Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
Dialog和Toast所有人肯定都不会陌生的,这个我们平时用的实在是太多了。而Snackbar是Design Support库中提供的新控件,有些朋友可能已经用过了,有些朋友可能还没去了解。但是你真的知道什么时候应该使用Dialog,什么时候应该使用Toast,什么时候应该使用Snackbar吗?本篇文章中我们就来学习一下这三者使用的时机,另外还会介绍一些额外的技巧。1. Dialog首...转载 2018-08-03 06:50:01 · 138 阅读 · 0 评论 -
DrawerLayout的使用
目前很多应用都有侧滑菜单,最初的侧滑菜单很多都有SildingMenu,相信很多人都用的很熟。Google推出了自己人侧滑菜单DrawerLayout,相信很多人已经在用了。这里记录一下DrawerLayout的使用。DrawerLayout目前大体有两种形式吧。效果图下面看一下效果图:效果一效果二其实还有第三种效果,就是第一种的侧滑部分的状态栏加上。不过目前一般都是...转载 2018-08-08 06:38:25 · 2360 阅读 · 0 评论 -
Android开发之CardView卡片布局
CardView是Android 5.0系统引入的控件,相当于FragmentLayout布局控件然后添加圆角及阴影的效果;CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。CardView应该被使用在显示层次性的内容时;在显示列表或网格时更应该被选择,因为这些边缘可以使得用户更容易去区分这些内容。使用先看效果首先...转载 2018-08-08 06:38:11 · 560 阅读 · 0 评论 -
ViewPager+Fragment+FlycoTabLayout,20行代码实现tabbar(菜单切换效果)
前言首先上鸡汤,FlycoTabLayout,一个强大的第三方tabbar库(有各种体位,总有个姿势会让你舒适),点击查看相信你不会后悔。正如标题所说,只需要不到20行的代码,实现tabbar,菜单选择效果,先上图。编码 首先创建一个项目 布局,很简单 <?xml version="1.0" encoding="utf-8"?><Linear...转载 2018-07-31 06:22:42 · 497 阅读 · 0 评论 -
解决TextView设置跑马灯但却没有效果
TextView跑马灯可以让显示不完的文字,以动画的形式滚动显示,但今天写了竟然没有任何效果这就很郁闷了!原来是没有获取到焦点 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margi...转载 2018-07-30 05:47:19 · 4508 阅读 · 0 评论 -
关于开源项目SwipeMenuListView的使用详解
Demo用法第1步在布局XML加SwipeMenuListView<com.baoyz.swipemenulistview.SwipeMenuListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_...转载 2018-07-29 09:01:50 · 525 阅读 · 0 评论 -
解决SwipeRefreshLayout与ScrollView滑动冲突
在页面为了兼容小屏幕设备我们需要嵌套一个ScrollView来让我们的布局可以滑动,此时恰好外层使用了SwipeRefreshLayout那滑动冲突就来了,下面给出解决办法1.方法一:使用NestedScrollView替换ScrollView<android.support.v4.widget.NestedScrollView android:id="@+...转载 2018-07-29 09:01:44 · 5248 阅读 · 0 评论 -
PopupWindow 弹窗点击区域外部不消失
默认的popupWindow点击区域外会使popupWindow自动dismiss,如果有一个点击区域外使popupWindow不自动dismiss的需求,该怎么办呢?首先来看popupWindow的两个重要的boolean属性mFocusable和mOutsideTouchable。mFocusable是用来判断当前的popupWindow是否获取焦点,可以通过setFocusa...转载 2018-07-06 06:47:08 · 2117 阅读 · 0 评论 -
Dialog的Dismiss方法使用注意事项
Dialog的Dismiss方法可以在主线程和子线程调用。当在主线程调用时,系统其实会启动一个子线程做里面的耗时操作。我们使用的时候,最好判断一下调用Dialog的Dismiss方法的Dialog非空,并在该方法上加同步锁。不用判断isShowing,因为Dismiss方法内部有判断。...原创 2018-06-26 07:10:55 · 11003 阅读 · 0 评论 -
Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系
1、Surface Surface extendsObject implementsParcelable java.lang.Object ↳ android.view.Surface Class Overview Handle onto a raw buffer that is being managed...转载 2018-06-18 06:21:46 · 369 阅读 · 0 评论 -
Android 自定义Dialog实现步骤及封装
在项目中,我们会遇到各种各样的界面需求,比如对话框和选择框,都是会配合具体项目的UI界面来做,而不是说用自带的弹出框。比如下面在登录界面的二个对话框效果。都是我在做具体项目中所要求实现的:1.输入有误时弹出的对话框2.选择角色登录时的对话框让我们一步步来看是如何自定这个自定义对话框及如何来进行封装自己的自定义Dialog工具类。我就按照实际项目中,我的开发步骤来说明。如何生...转载 2019-06-16 07:47:10 · 4832 阅读 · 2 评论 -
Android 自定义 Dialog 无法横向铺满屏幕
在Android 5.0以上 自定义Dialog时发现无法横向铺满屏幕代码大致如下:Dialog dialog = new Dialog(this);dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);dialog.setContentView(R.layout.dialog_layout);Window dialogWindo...转载 2019-06-16 07:47:20 · 1514 阅读 · 0 评论 -
android Snackbar控件解析
什么是SnackbarSnackbar 是 Android 5.0 新特性——Material Design 中的一个控件,用来代替 Toast ,Snackbar与Toast的主要区别是:Snackbar可以滑动退出,也可以处理用户交互(点击)事件。Snackbar的特性Snackbar会在超时或者用户在屏幕其他地方触摸之后自动消失;可以在屏幕上滑动关闭;出现时不会阻碍用户在屏幕上的...转载 2019-06-16 07:47:28 · 332 阅读 · 0 评论 -
CardView属性app:cardUseCompatPadding和app:cardPreventCornerOverlap
CardView继承自FrameLayout布局,常用属性如下:下文CardViewDemo代码 <android.support.v7.widget.CardView android:layout_width="wrap_content" android:layout_height="wrap_content" androi...转载 2019-06-19 06:24:56 · 5996 阅读 · 1 评论 -
最新Spinner用法详解
Spinner组件一共有两个,一个是本身的Spinner,一个是android.support.v7.widget.AppCompatSpinner两者的区别在于v7内的Spinner是兼容低版本的,Spinner再高版本中才能使用的方法换了v7下的Spinner后可以一直兼容到2.1 (v7兼容到api7),初次之外两者的使用没有其他差别,推荐使用v7,保证效果在不同版本上都能显示....转载 2019-07-07 10:31:32 · 13725 阅读 · 6 评论 -
Android Button有默认padding值的元凶
刚给群里的小伙伴实现了一个自定义view,效果图如下当我正准备开心地告诉小伙伴我已经实现好了的时候,这个b没装好哈~~~为了跟小伙伴发的效果图达到几乎相似的效果,于是打算把button按钮样式也给写了(原谅我处女座哈!!)就是控件最下方的那两个按钮,看到这个按钮样式的时候,小伙伴是不是也第一时间想到定义一个shape文件就好了呢,所以我就去定义了一个shape文件:<?...转载 2018-08-19 07:27:04 · 2538 阅读 · 0 评论 -
Android 中 EditText 的 inputType 属性及其他常用属性
一、xml里面调用:<---输入数字->android:inputType="number"/> 二、Activity 里面调用:EditText editText=(EditText)findViewById(R.id.edittext);intinputType=InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMB...转载 2018-08-20 06:35:05 · 810 阅读 · 0 评论 -
Android Studio中Button等控件的Text属性英文默认大写的解决方法
在 Android Studio 中 xml 里面添加一个 Button、EditText 等控件后,它的 Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是android:textAllCaps。最后查看了一下Themes.xml文件,找到了一些端倪,发现在设置样式的时候,默认是把所有的字符串显示大写true。如图,是从android的Style.xml中的...转载 2018-08-20 06:35:33 · 2066 阅读 · 2 评论 -
android控件之ViewSwitcher实现图片切换
布局文件如下<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" ...转载 2019-06-07 10:17:48 · 367 阅读 · 0 评论 -
关于ExpandableListView用法的一个简单小例子
喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到android的ExpandableListView,今天研究了一下这个的用法,也参考了很多资料动手写了一个小demo,实现了基本的功能,但界面优化方面做得还不够好,有待改进,素材采用了Q版三国杀武将的图...转载 2019-02-17 09:55:57 · 204 阅读 · 0 评论 -
Android SurfaceView使用详解(很好的实战例子)
一、surfaceview在显示时才会调用callback中的surfaceCreated。注意,是在显示时,在初始化时不会调用在隐藏时会调用callback中的surfaceDestroyed二、清屏操作public void clearDraw(SurfaceHolder holder,int color) { Log.w("tan","clearDraw"); ...转载 2019-01-21 06:35:59 · 2059 阅读 · 0 评论 -
EditText与scrollView的滑动冲突
问题描述:ScrollView 中含一个固定高度的 EditText, 当输入内容超过固定高度,EditText 内部内容上下滚动困难。mEditInput.setOnTouchListener((v, event) -> { /*告诉父组件不要拦截他的触摸事件*/ v.getParent().requestDisallowInter...转载 2018-12-22 11:04:49 · 473 阅读 · 0 评论 -
EditText是如何实现长按弹出复制粘贴等ContextMenu的源码解析
最近在做一些关于EditText编辑功能的需求,遇到了很多的问题,比如EditText在RecyclerView中会出现内容错乱、RecyclerView复用EditText后长按无法弹出复制、粘贴、全选ContextMenu等一些问题,在网上也没有搜到比较好的解决方法,于是就想研究一下这方面的源码,希望能帮到有需要的同学,少走一些弯路。网上看到的关于EditText的ContextMenu的...转载 2018-12-31 08:29:32 · 2208 阅读 · 0 评论 -
TextView使用技术点(二)
1、基本的字体颜色设置: mTxt1.setTextColor(Color.RED);//设置成默认的颜色 红色黄色等等 mTxt2.setTextColor(Color.parseColor("#FF0000"));//设置成红绿蓝6位颜色,都有两位的16进制数字表示,以#开头 mTxt3.setTextColor(Color.parseColor("#AAFF00...转载 2018-11-25 19:04:54 · 203 阅读 · 0 评论 -
TextView使用技术点(一)
TextView作为开发时候显示最常用的控件之一,我们使用的频率是非常高的,但是我们平时的使用都是怎么使用的那些相关的属性和方法呢?内容:setText()字体:TextSize、TextColor宽度和高度:width、weigth边距:margin、padding背景:background......常用的基本也就这些吧。虽然基本都用,但是我们真的了解这些属性和...转载 2018-11-25 18:54:20 · 759 阅读 · 0 评论 -
解决TextView在显示文字的时候,一行还没显示满就跳到下一行
一、问题描述:Android的TextView在显示文字的时候,如果有段中文有英文,有中文,有中文标点符号,你会发现,当要换行的时候遇到中文标点,这一行就会空出很多空格出来。原因是:1) TextView在显示中文的时候 标点符号不能显示在一行的行首和行尾,如果一个标点符号刚好在一行的行尾,该标点符号就会连同前一个字符跳到下一行显示;2)一个英文单词不能被显示在两行中( TextV...转载 2018-11-24 07:40:42 · 2176 阅读 · 1 评论 -
Android中获取TextView行数
项目中发现,如果直接通过TextView.getLineCount()方法获取行数时,总是0,研究发现,setText()后立即调用getLineCount(),这时TextView还未完成measure,要想正确的获取TextView的行数有两种方法1.用ViewTreeObserver监听View初始化的各种状态使用ViewTreeObserver的OnPreDrawListene...转载 2018-11-03 12:09:05 · 2824 阅读 · 2 评论 -
学Android Space控件,只看这篇文章就行了
Space 是一个轻量级的 View 子类,可用于在通用布局中的组件之间创建间隙。介绍Space 经常用于组件之间的缝隙,其draw()为空,减少了绘制渲染的过程。组件之间的距离使用 Space 会提高了绘制效率,特别是对于动态设置间距会很方便高效。正是因为draw()为空,对该 view 没有做任务绘制渲染,所以不能对 Space 设置背景色。选择Space 控件在 andro...转载 2018-10-27 13:49:14 · 7341 阅读 · 0 评论 -
Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
在Android中,TextView是我们最常用的用来显示文本的控件。 一般情况下,TextView中的文本都是一个样式。那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。 res-layout-main.xml<?xml version="1.0" enco...转载 2018-10-01 13:47:11 · 257 阅读 · 0 评论 -
给你的TextView中的部分文字加入没有下划线的超链接
项目优化,当网络请求失败时加上提醒,并可以点击TextView中的“刷新”两个字再次请求。使用ClickableSpan对超链接进行设置。默认情况下的样式是这样的:想要的样式是这样的:我们使用默认ClickableSpan的方法如下:SpannableStringBuilder builder = new SpannableStringBuilder("(╯︵╰)\n网...转载 2018-10-01 12:59:49 · 822 阅读 · 0 评论 -
EditText内容格式化控件 XEditText 和 输入内容过滤器
在我们开发当中,输入框控件是很常见的,最常见的就是注册、登陆、密码设置与修改;另外就是身份证号和银行卡号的录入等。在录入这些信息的时候,如果我们直接使用系统的EditText进行编程,虽然能够实现,但是很有可能会被产品和UI干掉,因为在看起来的时候确实很费力而且还容易看错,所以我们就需要自定义一个控件来实现这个效果,当然最好是能够自定义模板,想什么格式就什么格式,XEditText就实现的这个功能...原创 2018-08-31 07:04:05 · 893 阅读 · 0 评论 -
EditText禁止输入表情符号
因项目需求,需要禁止用户输入表情符号,个人认为方式有俩种。第一种键盘弹出不显示表情选项(失败,因为每个手机的Rom烧制都是固定的,很难去操作,主要是水平有限);第二种,显示表情选项,但是输入之后EditText不做处理,不会进行展示,这样我们传输的时候就不会出现错误;查询一些网上的处理方案,有的朋友是通过一些正则去过滤,有的是通过自定义类去做处理,当然应该都是通过校验实现的,这里我在G...原创 2018-08-31 06:56:37 · 2594 阅读 · 1 评论 -
Android修改6.0系统文本选择菜单
本文主要写了在Android6.0+版本上,修改EditText、TextView的文本选择菜单内容和为其他APP提供自定义文本操作这两个功能。1.修改EditText和TextView的文本选择菜单内容Android官方控件中,EditText中的文字默认长按呼出文本选择菜单,而TextView需要设置android:textIsSelectable="true"。我们修改文本选...转载 2019-08-02 06:56:30 · 2457 阅读 · 0 评论