支持时间轴和StepView,三种布局,支持水平布局,垂直布局和自定义布局,截图如下
getDrawable(int)在API 21(5.0)已经过时了 📷 5.0之后使用: ContextCompat.getDrawable(context, R.drawable.your_drawable) 例如: imageView.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.icon)); 源码 public static final Drawable getDrawable(Context context, @
BottomNavigationBar和其他控件的配合是完全解耦的,日常使用分为BottomNavigationBar+ViewPager 、BottomNavigationBar+FrameLayput
BottomNavigationBar和其他控件的配合是完全解耦的,日常使用分为BottomNavigationBar+ViewPager 、BottomNavigationBar+FrameLayput 1 使用 BottomNavigationBar+ViewPager 直接上代码 <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_pa
/storage/emulated/0/… 手机内部存储路径 mEditText.setKeyListener(null); EditText设置不可编辑,比focusable、enable更粗暴 a
ContextCompat.getDrawable(getActivity(), R.drawable.name);
java.lang.NoSuchMethodError:android.content.Context.getDrawable 今天在开发的时候,这个代码在源码中是可以看到的,但是在android 4.3手机上面会报错,具体错误信息和代码如下: setBackgroundDrawable(context.getDrawable(R.drawable.coach_popou_window)); 会报这个错误 java.lang.NoSuchMethodError:android.content.Contex
setBackgroundResource方法在内部还是调用的setBackground方法,而 setBackground内部调用的还是setBackgroundDrawable方法
使用矢量图代替位图可以减小 APK 的尺寸,因为可以针对不同屏幕密度调整同一文件的大小,而不会降低图像质量。
电商项目中经常有这样的需求:在商品列表页面中,切换列表的展现形式,一般分为列表形式和表格形式。
相关GitHub项目地址:https://github.com/codeqian/android-class-lib
在Android开发过程中我们常遇到将某个图形的颜色改变(例如用圆点的不同颜色来代表不同的状态)
小厂开发而言,日常的繁杂的业务开发任务相对较重,有些东西,首次遇到,后续也不想再浪费时间。
在上一篇文章中完成了记事本基本功能,就是增删改查,本文对一些功能进行增强,对用户的体验就会更好。完成这一篇文章就可以实现下面的效果图
刚开始学习RecyclerView的时候我跟着一个视频学的,当时添加分割线是从外面导入一个Java类,然后使用里面的函数来创建分割线的,所以一直以来我都是这样做的。直到前几天才无意中发现,原来v7包中提供了一个DividerItemDecoration类,利用它,我们可以很简单地实现RecyclerView的分割线!那还等什么呢?赶紧用起来。
源码注释告诉了我们:此获取的drawable不与其他drawable 共享,简而言之,就是构建单独的内存模块来存储此drawable达到相互不影响的状态。
列表拖动排序功能也算是比较常见的了。在RecycleView还没有出现的那个年代,依稀记得是重写GridView实现拖拽,WindowManager实现拖拽的镜像。 不过,现在好了,有了Recycle
效果 xml <ProgressBar android:id="@+id/item_progress_bar" style="?android:attr/progressBarStyleHorizon
聊到到 Android 的 资源加载 ,每一个开发同学都会非常熟悉,毕竟 getText() 等, 我们实在用了太多。
1.EditText自动获取焦点弹出软键盘 为了防止上述情况,可以在其父级控件中添加如下属性:
零、前言 [1].RecyclerView可以说是现在安卓视图的一哥了 [2].加包implementation 'com.android.support:design:26.1.0' [3].
本文实例讲述了Android开发实现带清空按钮的EditText。分享给大家供大家参考,具体如下:
小伙伴们肯定都有在玩儿一些游戏,比如和平精英,在界面上展示的名字,其实就是Android中咱们上一篇介绍到的TextView控件。而今天,我们再给大家带来一个非常好玩儿的控件,这个控件可以结合咱们之前的讲到的内容做很多有趣的事情~
ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性、灵活性、具有Material Design风格等优点,越来越多的App也用上了ToolBar。
完整Demo:https://github.com/yechaoa/TimeLineDemo
之前实现过《Android可签到的日历控件》的功能,跟这篇一样都是实现签到打卡功能,这篇实现的是按月进行打卡做标识,本篇内容实现的按周进行签到打卡。
以上所述是小编给大家介绍的Android BottomNavigationBar导航栏功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!
安卓使用TabLayout+ViewPager+Fragment 实现页面切换,可实现左右滑动切换视图界面和点击切换
最近看了一下 Android 上的图表控件,去年做过一款应用也已上架了,也用到了图表控件,但是只是按照官方 demo 集成了,并没有过多的研究。
我们都知道要获Res下的文件,需要用Resource对象,但是apk是未安装的,宿主并没有对应的resId,因此获取资源需要进行反编译,反编译需要对应的插件的包名,就是反编译R资源。 贴代码,举个例子: 插件管理器类
零、前言 [1].ImageView地位:直接继承自View,安卓源码1600+,算是个小类,但图片显示基本上都用它 [2].scaleType有点小烦,不过看图还是挺清晰的 [3].cropToPadding、adjustViewBounds、tint [4].图片设置 源码中ImageView的自定义属性: * @attr ref android.R.styleable#ImageView_adjustViewBounds * @attr ref android.R.styleable#
智能手表相对手机来说,由于使用场景不同,且屏幕较小,所以应用的设计、交互和手机是有些区别的。相对来说,布局会更简洁,更多地使用滑动手势进行操作。
本文将对Socket通讯进行进一步的优化,并增加新的功能,具体改变了那些,一起来看。效果如下图所示:
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com
这之前的文章中,我们介绍过如果通过Kotlin编译器参数实现将所有的warnings按照errors对待,主要的实现方法是这样
使用RecycleView和CardView展示已安装应用的包名和图标 ① 获取安装的应用信息 public class ApkInfos { Context mContext; public ApkInfos(Context context){ mContext = context; } public List<String> getAllInstalledApkInfo(){ List<String> apkPackageNam
在网上找了很多viewpager实现图片轮播的,但是大多数通过以下方式在PagerAdapter的getCount()返回一个无限大的数,来实现 伪无限
使用起来类似于Toast,但也有与Toast的不同之处,Toast的使用:
Tabs are now best implemented by leveraging the ViewPager with a custom “tab indicator” on top. In this guide, we will be using Google’s new TabLayout included in the support design library release for Android “M”.
熟悉Android App开发的同学,肯定都清楚,如果要显示多张图片,类似九宫格,可以用GridView或者GridLayout来做,但是如果需求要求在ListView或者recyclerView 的每个item中都显示这样一个九宫格,那么GridView就不适用了,GridLayout可以实现,但是不是那么优雅,我们需要在item每次重绘时,加入添加或者删除逻辑。既然框架没有提供满足需求的控件,我们只能自己实现。
效果: 📷 📷 多布局的使用场景还是蛮多的,比如“首页”、“我的”等页面,早期的时候大家一般都是拼起来的,后来开始自定义ListView(支付宝现在的首页还是ListView),再到后来的RecyclerView。 其实多布局都是一个套路,根据类型去引入layout,本文以RecyclerView为例,以BaseRecyclerViewAdapterHelper为辅演示多布局的写法。 1.添加依赖 compile ‘com.github.yechaoa:YUtils:2.0.6’ compile
View工作流程 View工作流程主要指measure、layout、draw这三个流程,即测量、布局和绘制,其中measure确定View的自身的宽高,layout确定View在父容器放置的位置,draw将View绘制到屏幕上。
PopWindow是一个可以在Activity 之上显示任意View的控件。 PopWindow可自定义进出动画、显示位置,根据已有视图对齐显示,可谓弹框一哥。 实例:在按钮上面显示 pop.g
在项目中使用viewpager的时候大多数都是和TabPagerIndicator结合使用,TabPagerIndicator是第三方的,使用起来比较繁琐;
Snackbar和Toast相似,都是为了给用户提供交互信息,Snackbar是固定在底部的,显示时从下往上滑出
本文实例为大家分享了Android实现直播点赞效果的具体代码,供大家参考,具体内容如下
近期项目的迭代版本开发,部门惊喜的申请了一台9.0的机器,是目前部门有史以来第一台8.0以上的机器,满怀喜悦的跑起项目,惊讶地发现Notification的在9.0以上的机器突然不能弹出通知了,惊讶之余发现发通知管理的权限没有开启(就觉得在我的代码怎么会有问题),结果开启了仍然无法接收到通知(打脸了...),马上请教了google大神,发现了毛病
private void showAllPopWindow() { cityId = “0”; final View popupView = mInflater.inflate(R.layout.activity_recruit_all, null); View other_view= popupView.findViewById(R.id.other_view); RecyclerView recyclerView = (RecyclerView) popupView.findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); final RecyclerView.Adapter adapter = new CommonAdapter(this, R.layout.activity_recruit_all_item, mCityData) { @Override protected void convert(ViewHolder holder, RecruitCityEntity entity, final int position) { holder.setText(R.id.text, entity.getCityName()); if (mCityData.get(position).isCheck()) { holder.setTextColor(R.id.text, ContextCompat.getColor(RecruitActivity.this, R.color.theme_gold)); } else { holder.setTextColor(R.id.text, ContextCompat.getColor(RecruitActivity.this, R.color.black)); } holder.setOnClickListener(R.id.text, new View.OnClickListener() { @Override public void onClick(View view) { cityId = mCityData.get(position).getId(); for (int i=0;i<mCityData.size();i++) mCityData.get(i).setCheck(false); mCityData.get(position).setCheck(true); notifyDataSetChanged(); if (window!=null) window.dismiss(); mRefreshLayout.beginRefreshing(); } }); } }; recyclerView.setAdapter(adapter);
领取专属 10元无门槛券
手把手带您无忧上云