很多软件都使用了卡片式的布局,看上去非常美观。查了一下,大多是采用CardView这个神奇的组件实现。...翻阅大部分教程,大多数都是采用这行代码来调用cardview包 import android.support.v7.widget.CardView 耗费了很多精力,我还是无法成功安装相应的依赖。...后来发现,由于版本更新,现在的方式已经改变。.../RelativeLayout> MainActivity.java package cn.edu.cdut.cardview; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity...= (CardView) findViewById(R.id.cardView); cardView.setRadius(8);//设置图片圆角的半径大小 cardView.setCardElevation
我们可以看看实现后的效果如下: ? 在真实的APP当中,我们还会加上一个SrcollView控件,这样子才可以进行不断地上下浏览。...</android.support.v7.widget.CardView 编写好后在preview当中显示如下: ?...</android.support.v7.widget.CardView 三.card_right_buttom.xml: <?...</android.support.v7.widget.CardView 四.card_left_buttom.xml: <?...整合后的主活动的代码为: 五.activity_main.xml: <?xml version="1.0" encoding="utf-8"?
5.ViewPager结合CardView 1.clipChildren属性 clipChildren属性表示是否限制子控件在该容器所在的范围内,clipChildren属性配合layout_gravity...属性,可以用来设置多余部分的显示位置,我这里举一个简单的例子,比如喜马拉雅FM这个应用的首页: 大家注意看这个应用底部导航栏中中间一个是要比另外四个高的,这种效果很多人就会想到使用一个RelativeLayout...> 大家看只需要在根节点添加clipChildren属性,然后在第三个ImageView上添加layout_gravity属性即可,layout_gravity属性值为bottom表示控件大小超出后控件底部对齐...5.ViewPager结合CardView 如果你还不会使用CardView,可以参考我之前的文章Android5.0之CardView的使用,那今天我们来看看ViewPager结合CardView会产生怎样的效果呢...这个CardView式的ViewPager我们就使用这种方式来实现。先来看看效果图: 整体思路和上文其实是一致的,我们来看看activity的布局: <?
最常用的实现一般有FragmentPagerAdapter和FragmentStatePagerAdapter。自行百度它的用法。...要实现图中的效果需要以下几个知识点: 1.clipChildren属性 2.一个页面显示多个ViewPager的Item 3.自定义PagerTransformer 4.ViewPager结合CardView...1.clipChildren 属性 clipchildren :是否限制子View在其范围内,当我们将其值设置为false后那么在子控件的高度高于父控件时也会完全显示,而不会被压缩,(上面中间的按钮超过上面的阴影线...parallax效果,使用PageTransformer就足够了 viewPager.setPageTransformer(false, new CustPagerTransformer(this)); 4.CardView...以上就是本文的全部内容,希望对大家的学习有所帮助。
父布局 对于ViewGroup的选择问题:推荐FrameLayout > LinearLayout > RelativeLayout(为了优化布局,RelativeLayout会调用childrenView...的onMeasure()两次),推荐阅读:LinearLayout与RelativeLayout的性能比较 尽量不要嵌套使用RelativeLayout..../colorAccent 注:Navigation的background会影响4.4系统的状态栏 CardView会自动加一层背景色 ripple里的默认颜色为标签下设置,...比较直观的感觉是:在设置里打开显示布局边界后,如果不是使用标签,GONE掉后,加载中的布局还是会有颜色显示,而使用了此标签后颜色会消失。...使用前 使用后 3、:在使用了include后可能导致布局嵌套过多,多余不必要的layout节点,从而导致解析变慢,不必要的节点和嵌套可通过hierarchy viewer(下面布局调优工具中有具体介绍
点击 ---- 搭配CardView 是不是这个点击看着没啥感觉, 没事, 我们换上CardView再来一次. 布局文件: <?...cardview 给CardView加上水波纹点击特效: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width...wrap_content" android:layout_centerInParent="true" android:src="@mipmap/ic_launcher" /> </RelativeLayout...引入: implementation 'com.hannesdorfmann:adapterdelegates3:3.0.1' 先不说使用细节, 来看看实现后想加入不同视图有多简单吧: ArrayList
为了满足 Material Design 的层次要求,android 5.0 后增加了 Z 轴,用来表示控件的海拔,海拔的效果具体体现在阴影上。...也就是优先被绘制,而z属性越大,则绘制时间越晚,后绘制的将会遮盖住先绘制的,只有Z属性相同,才按照添加的顺序绘制。...海拔的演示 比如 CardView 和 TextView <RelativeLayout android:layout_width="match_parent" android...> 这样的话 TextView 是不会显示出来的,因为 TextView 的默认海拔是0 ,就被 Cardview 给挡住了,因为 CardView 的默认海拔是 2dp,如果你将 TextView 的海拔设置为...阴影的条件 阴影由轮廓和海拔共同决定。 海拔决定了阴影的大小,轮廓决定了阴影的形状。 阴影一定需要有轮廓然后海拔增高后才能被投射出来,两者缺一不可。
']) compile 'com.android.support:cardview-v7:21.0.0-rc1' } 如果Gradle提示找不到,就证明你的SDK需要更新了,把Google support...包更新到最新吧。...依赖添加完成后,进行编译会发现出现minSdk错误,cardview-v7的minsdk为“L",其实CardView能够向下兼容到2.0。...在Android gradle tools 0.11版本后,可以通过xml中的tools配置进行节点替换,而AndrodiStudio对gradle tools的支持更好一些,其ParentIDE Intellij...添加完成后,再次编译,问题解决。 使用 在使用CardVIew之前,要明白CardView是个什么东西。
它将帮助您迈出学习 Android 开发的第一步。 该应用程序将有一个简单的 UI 和几行 java 代码,以便您可以开始进行 android 开发。在获得基本确认后,您当然可以使其功能更加丰富。...更新 Android 应用 XML 文件 现在在 res 文件夹中,转到 layout 文件夹中的 activity_main.xml 文件并编写以下代码。...> 更新 MainActivity.java 文件 在 java 文件夹中,转到包中的 MainActivity.java 文件并编写以下代码。...这里给出了按钮的“id”,然后设置了 Click Listener。单击此“单击我”按钮后,我们会看到一个祝酒词(一条显示“按钮已单击!”的短消息)。...此外,您还应该阅读下面的 Android Studio 教程以了解如何正确设置它。
建立依赖 ConstraintLayout布局是Android Studio 2.2的新增功能,所以在建立依赖前需要将Android Studio更新至2.2版本或以上。...Tree,在其下方右键单击activity_main(RelativeLayout),在弹出的列表中选择Convert RelativeLayout to ConstraintLayout,如下图所示...TextView控件,单击键盘delete按钮删除该控件。...如下图所示,单击打开工具栏中Autoconnect功能按钮,将控件拖至屏幕中心,然后约束就会自动添加了,这个相信使用过墨刀设计过APP原型的读者们会感到很熟悉。 ?...Inference是手动添加约束后,对当前界面所有控件的位置关系添加整体约束关系,感觉和Photoshop里面不同布局中的图像调整好位置后合并可见图层很像。Inference操作如下图所示: ?
--翻译后显示的布局--> <LinearLayout android:id="@+id/after_lay" android...--内容输入区域--> <RelativeLayout android:layout_width="match_parent"...--翻译后的结果显示--> <LinearLayout android:visibility="gone" android...第一块是翻译后的语言区域,第二块是翻译后的结果区域。运行的效果如下: ? 2....加密方法如下: /** * 将字符串转成MD5值 * * @param string 需要加密的内容 * @return 加密后的字符串 */
需要轮播的图片 经过处理,变成这样 ? 处理后的轮播图 在界面上看到的是三张图片,而实际在ViewPager中的是这样的5张。...* @param unselect 未选中时的图片 */ public void setIndicators(int select, int unselect) {...isWheel) { handler.postDelayed(runnable, delay); } } /** * 刷新数据,当外部视图更新后...author minking */ public static interface ImageCycleViewListener { /** * 单击图片事件...initView() { mCycleViewPager = (CycleViewPager) findViewById(R.id.cycle_view); //设置选中和未选中时的图片
先看效果 另一种效果 好了效果看了,感兴趣的往下看哦!...整体实现思路 重写RelativeLayout 实现 锁定宽高比例的 RelativeLayout 自定义一个支持滑动的面板 继承 ViewGroup 卡片View绘制 页面中使用布局 首先为了更好的展示图片我们重写一下...RelativeLayout 编写一个锁定宽高比例的 RelativeLayout AutoScaleRelativeLayout public class AutoScaleRelativeLayout...childWith = viewList.get(0).getMeasuredWidth(); } //onFinishInflate 当View中所有的子控件均被映射成xml后触发...Toast.LENGTH_SHORT).show(); } @Override public void onItemClick(View cardView
Layout View:整体布局图,以手机屏幕上真实的位置呈现出来。单击某一个控件,会在Tree Overview窗口中显示出对应的控件。...从图中可以看出被选中的RelativeLayout自身的Measure、Layout和Draw的耗时数据都为n/a。单击Layout Time按钮后,就可以查看View的耗时情况了,如下图所示。 ?...检查的范围主要有以下几点: Correctness 正确性 Security 安全性 Performance 性能 Usability 可用性 Accessibility 可达性 Internationalization...点击上图的OK按钮后,就会进行代码检查,检查的结果如下图所示。 ?...在使用ViewStub时需要主要以下问题: ViewStub只能加载一次,加载后ViewStub对象会被置为空,这样当ViewStub引用的布局被加载后,就不能用ViewStub来控制引用的布局了。
属性来完成,随着Google API的不断更新,API 21(Android 5.0)添加了新的控件CardView,这使得圆角的实现更加方便快捷。...导入CardView依赖(API 21新控件) implementation 'com.android.support:cardview-v7:26.1.0' 1.布局引用 <android.support.v7...1.cardCornerRadius属性:设置圆角的弧度大小,这里设置的为10dp 2.CardView还有padding、cardUseCompatPadding(内边距)、background等属性...dialogView.findViewById(R.id.tv_des); //设置标题及描述信息 tvTitle.setText(title); tvDes.setText("退出当前登录后将要重新登录...总结:CardView实现对话框的圆角效果更加的方便,不用编写shape属性,当标题栏需要背景色时,也无需考虑设置标题栏的shape(不使用CardView时,如果不使用shape设置背景色,会导致左上和右上不会变成圆角
整体实现思路 1、重写RelativeLayout 实现 锁定宽高比例的 RelativeLayout 2、自定义一个支持滑动的面板 继承 ViewGroup 3、卡片View绘制 4、页面中使用布局...首先为了更好的展示图片我们重写一下 RelativeLayout 编写一个锁定宽高比例的 RelativeLayout AutoScaleRelativeLayout public class AutoScaleRelativeLayout...).getTop(); childWith = viewList.get(0).getMeasuredWidth(); } //onFinishInflate 当View中所有的子控件均被映射成xml后触发..." + index + " 消失type=" + type, Toast.LENGTH_SHORT).show(); } @Override public void onItemClick(View cardView...为使用模板 以上就是本文的全部内容,希望对大家的学习有所帮助。
</LinearLayout </RelativeLayout 到这里小伙伴直接运行,就可以看到手势解锁的布局,大家也可以根据自己的需求去改变这个xml. com.gestruelock.IndicatorLockView...private String succeeMsg="再次输入密码,密码已设置,密码正确,密码正确,请输入新密码"; @Override protected void onCreate(Bundle savedInstanceState...().size() 0) { lockviewIndicator.setPath(mLockviewExpand.getPointTrace()); } } //返回信息如果是正确的 @Override...锁定解锁的回调 mLockviewExpand.setOnUpdateIndicatorListener(this);//手势完成后的回调,设置上面的路径显示图 mLockviewExpand.setOnUpdateMessageListener...(this);//手势完成后,返回提示的信息 mLockviewExpand.setOnFinishDrawPasswordListener(this);//手势解锁成功,密码设置成功的回调 其他配置:
放置网格的算法便是一开始提到的RelativeLayout方案,在代码实现时要提供RelativeLayout.LayoutParams布局参数,然后调用该参数的addRule位置方法,常量RelativeLayout.RIGHT_OF...当然需要对第一个视图先分配一个临时数字id,后面的视图编号依次累加;每次添加完毕一个视图,都要更新步骤一提到的列高度数组,后续才能根据这个数组来判断新的网格放在哪一列的哪个视图下方。...最后不要忘了实现瀑布流的元素单击和元素长按的监听器与调用方法,即OnItemClickListener的onItemClick,以及OnItemLongClickListener的onItemLongClick...接着在弹起事件中判断要如何处理弹起事件,单击和长按可以通过按下的时间长短来区分,网格位置的position,可以用当前控件的编号id减去第一个视图的临时id,它们的差便是当前网格的序号。...当然StaggeredGridView项目自从2014年之后就没有更新,所以无人解决问题使得用户越来越少了吧。 ?
本文实例为大家分享了RecyclerView实现侧滑拖拽功能的具体代码,供大家参考,具体内容如下 准备 ItemDragListener package slideslipdrag; import android.support.v7..."true" android:layout_centerVertical="true" android:button="@drawable/checkbox_image_selector" / </RelativeLayout...onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { // inflate(R.layout.list_item_record,parent,false)不这么写则cardview...onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { // inflate(R.layout.list_item_record,parent,false)不这么写则cardview...,希望对大家的学习有所帮助。
在开发过程中常会遇见带阴影效果的控件,通过 SDK 提供的 CardView 和 android:elevation可以实现,也可以通过 .9 图实现。...– more –> 关于 ShadowLayout 的使用 先来看一张使用 ShadowLayout 库实现的各种阴影的效果图,如下图所示: ?...,ShadowLayout 是 RelativeLayout 的子类,其源码如下所示(有较为详细的注释): /** * ShadowLayout.java * * Created by lijiankun...*/public class ShadowLayout extends RelativeLayout { public static final int ALL = 0x1111;...View.LAYER_TYPE_SOFTWARE, null); // 关闭硬件加速 this.setWillNotDraw(false); // 调用此方法后,
领取专属 10元无门槛券
手把手带您无忧上云