Android控件-DrawerLayout+NavigationView
一. 前言DrawerLayout 是在我们的隐藏区域,也就是我们看不见的屏幕以外,通过手指滑动,将 DrawerLayout 滑倒主屏幕区域。
二. demo1. 在主布局文件中添加ToolBar123456789<androidx.appcompat.widget.Toolbar android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#aa77bb" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/Theme.AppCompat.Light" app:navigationIcon="@drawable/h ...
Android控件-BottomNavigationView
一. 前言这是Google官方提供的一个BottomNavigationView。目前用的时候需要自己添加依赖,或者在布局文中搜搜索该控件,然后下载同步即可。
下面是运行效果:
二. demo1. Fragment我们首先需要四个Fragment,四个Fragment的代码都是一样的,只是名称不一样。
12345678910111213141516171819202122232425262728293031//Fragment的布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView ...
Android控件-ToolBar
一. 前言Toolbar 是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件 ,Google 非常推荐大家使用 Toolbar 来作为Android客户端的导航栏,以此来取代之前的 Actionbar 。与 Actionbar 相比,Toolbar 明显要灵活的多。它不像 Actionbar 一样,一定要固定在Activity的顶部,而是可以放到界面的任意位置。除此之外,在设计 Toolbar 的时候,Google也留给了开发者很多可定制修改的余地,这些可定制修改的属性在API文档中都有详细介绍,如:
设置导航栏图标;
设置App的logo;
支持设置标题和子标题;
支持添加一个或多个的自定义控件;
支持Action Menu;
二. 简单的使用1234567891011121314151617<!--activity_main.xml,注意需要使用androidx包里面的ToolBar--><?xml version="1.0" encoding="utf-8"?><R ...
自定义View-CircleProgress
一. 前言这个控件也可以说是为了做而做,是因为我在开发我的软件工程课程设计-连连看的时候,需要用到这个控件。
Github地址:CircleProgress
二. 自定义View1. 自定义用到的属性1234567891011121314151617181920212223242526272829303132//进度背景的画笔private Paint progress_bg_paint;//进度的画笔private Paint progress_paint;//进度值的画笔private Paint progress_value_paint;//视图的布局private RelativeLayout layout;//进度值private float progress = 0;//总的进度值private float total_progress = 100;//开始的角度private int startAngle = 0;//结束的角度private int endAngle = 360;//字体的大小private int textSize = 14;//字体的颜色pr ...
自定义View-NumberOfItem
一. 前言这个控件是为了做而做,中途还是遇到了很鬼畜的问题的。是因为我在开发我的软件工程课程设计-连连看的时候,需要用到这个控件。
Github地址:NumberOfItem
二. 自定义View1. 自定义用到的属性123456789101112131415//存储物品的图片描述private ImageView show_img = null;//物品的图片private int srcResource;//物品图片的背景样式private int imgResource;//存储物品的数量描述private TextView show_count = null;//物品数量的背景样式private int countResource;//存储物品的数量private int count = 0;//绘制物品数量的画笔private Paint paint;
2. 在values文件夹下自定义属性1234567891011<?xml version="1.0" encoding="utf-8"?><resour ...
Android项目:轮播图
一. 运行效果以及源码1.gif图效果
2.源码地址轮播图
二. 主要的思路① 使用ViewPager加载不同的页面的时候,根据position的不同,加载对应位置的数据。
② 使用自定义的PageController,控制页面的切换。
③ 在ViewPager页面滚动的方法中同时切换PageController的页面控制点。
④ 在PageController页面控制点改变位置的方法中同时切换ViewPager的页面。
注意点:ViewPager设置高度为wrap_content但无法自适应的解决办法?
参考:ViewPager设置高度为wrap_content但无法自适应的解决办法
自定义View-PageController
一. 前言Android中对于下面效果的页面控制器的应用场景还是比较多的,最典型的例子就是引导图和轮播图。接下来我们就通过自定义View完成下面的效果,并且做成静态库,方便日后使用。
Github地址:PageController
二. 自定义View1. 自定义需要用到的属性首先,我们创建一个继承于LinearLayout的PageController控件。然后在其中定义需要用到的属性。
1234567891011//页面数量private int numberOfPage;//页面之间的距离private int pagePadding;//记录当前记录的是第几页private int currentPage;//页面的样式private int pageResource;
2. 在values文件夹下自定义属性由于定义的属性在系统默认的属性里面没有,所以我们在values文件夹下创建了xml文件用来自定义属性。
12345678910111213<?xml version="1.0" encoding="utf-8"?> ...
自定义View-自定义属性
一. 前言自定义属性的使用步骤:
在在values目录下创建自定义属性的Xml文件。
在自定义View的构造方法中解析自定义属性的值。
在布局文件中使用自定义属性。
二. 在values目录下创建自定义属性的Xml文件1. 小例子例如:attrs_circle.xml
123456789101112<?xml version="1.0" encoding="utf-8"?><resources> <!--自定义属性集合:CircleView--> <!--在该集合下,设置不同的自定义属性--> <declare-styleable name="CircleView"> <!--在attr标签下设置需要的自定义属性--> <!--此处定义了一个设置图形的颜色:circle_color属性,格式是color,代表颜色--> <attr name="c ...