- 博客(19)
- 收藏
- 关注
原创 savedInstanceState保存与读取
在列表需要保存选中状态值(列表形式)和读取选中状态值(列表形式)的情况下:通过的方法,保存;自定义一个列表,类型适宜;如这里的自定义名:checkedPostions ,类型:Integer-->因为获取到的数组类型没有我这边的类型,所以需要转换一次;自定义SparseBooleanArray类型的,名字为positions的布尔数组;对它进行相应的赋值操作:-->positionsi++) {}
2022-08-23 16:54:17 1206 1
原创 ContentProvider内容提供者
可以看到ContentResolver的query方法和SQLiteDatabase的query方法非常相似,不同的是ContentResolver方法第一个参数指定的不是表名而是Uri。内容提供器用于在不同程序之间共享数据,允许一个程序访问另一个程序的数据,同时还能保证被访问数据的安全性。它有两方面应用,一是访问其他应用提供的数据,二是提供数据供其他应用访问。查询数据使用的是ContentResolver提供的query()方法,它接收5个参数,返回的是Cursor。path用来区分应用的不同表。
2022-08-19 16:38:31 191
原创 Fragment碎片
Fragment碎片和活动非常相似,它有自己的生命周期,在创建时也需要创建布局和类。引入碎片是为了更好的适配大屏幕设备。一个活动可以引入多个碎片,一个碎片也可以引入到多个活动中,从而实现代码复用。
2022-08-19 16:28:22 518
原创 布局<LinearLayout \RelativeLayout \FrameLayout \ConstraintLayout>
我们平时编写界面,复杂的布局总会伴随着多层的嵌套,而嵌套越多,程序的性能也就越差。中间的主操作区有两个类似手机屏幕的界面,左边白色的为预览界面,右边为蓝图界面,可以在预览界面预览最终效果,在蓝图节目调整控件约束。线性布局是比较常用的布局,它可以让控件在水平或垂直方向排列并指定排列方式,比如让控件在水平方向居中。帧布局,比较少用,类似Flutter的Stack布局,如果没有指定位置,多个元素会堆叠到左上角。相对布局,也是比较常用的布局,可以设置控件相对与父控件的位置,以及设置相对于其他控件的位置。
2022-08-19 16:22:18 380
原创 BroadcastReceiver广播
动态注册是使用代码注册,静态注册是在AndroidManifast.xml中注册,动态注册相对来说更加灵活,但是采用这种方式注册的广播只有在应用运行后才能接收到广播。有序广播:可以在注册广播接受器时设置优先级,这样在广播发送后,优先级高的广播接受器会先收到广播,等优先级高的广播接受器处理晚后,优先级低的广播才能接受到。想要接受广播首先要编写广播接受器,编写广播接受器要继承BroadcastReceiver并重写onReceive()方法,当广播接受器接收到广播后,就会调用这个方法。
2022-08-19 16:16:02 612
原创 Activity创建活动
其中和的作用是将该活动声明成主活动,这样在打开应用时,就会启动该活动。3. 停止状态,当活动完全不可见时,就进入了停止状态,系统仍然会为这种活动保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。活动在其生命周期中会有四种状态。
2022-08-19 16:07:38 475
原创 Linux--git
1、Git fetch:使用Git fetch更新代码,本地的库中master的commitID不变,还是等于1。2、git pull:使用git pull更新代码,本地的库中master的commitID发生改变,变成了2。如果使用--mixed,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。如果使用--hard,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。--soft 、--mixed以及--hard是三个恢复等级。
2022-08-19 15:46:46 260
原创 【Paint基本使用】
1、 兼容性问题:由于是将绘制函数转换成OpenGL命令来绘制,定然会存在OpenGL并不能完全支持原始绘制函数的问题,所以这就会造成在打开GPU加速时,效果会失效的问题。2、内存消耗问题:由于需要OpenGL的指令,所以需要把系统中的OpenGL相关的包加载到内存中来,所以单纯OpenGL API调用就会占用8MB,而实际上会占用更多内存;下图显示了一些特殊函数硬件加速开始支持的平台等级:(红叉表示任何平台都不支持,不在列表中的默认在API 11就开始支持)二、禁用GPU硬件加速方法。...
2022-08-16 20:35:45 178
原创 Android动画渲染及混合模式
1.线性渲染,LinearGradient(float x0, float y0, float x1, float y1, @NonNull @ColorInt int colors[], @Nullable float positions[],@)## // * 位图渲染:BitmapShader(Bitmap bitmap, Shader.TileMode tileX, Shader.TileMode tileY) // * bitmap:用来做模板的Bitmap;...
2022-08-10 09:53:57 255 1
原创 Java面向对象-接口
interface:接口* 1.接口中没有构造器;* 2.类是要实现接口 implement:实现;* 3.一旦实现一个接口,那么实现类要重写接口中的全部方法;* 4.如果没有全部重写抽象方法,可以将其变成一个抽次昂类;* 5.Java只有单继承(继承父类),Java还有多实现(多个implements);* 6.接口不能创建对象,可以指向实现类--->多态* 7.接口中常量如何访问?//接口.常量名//实现类.常量名(必须是静态的)*//创建实现类对象。.........
2022-08-09 17:49:57 1040
原创 【Android动画渲染及混合模式】
/mPaint.setMaskFilter(newBlurMaskFilter(10,BlurMaskFilter.Blur.NORMAL));//mPaint.setShader(newSweepGradient(200,200,Color.BLUE,Color.RED));//mPaint.getTextBounds(str,0,str.length(),rect);//mPaint.setARGB(255,255,255,0);
2022-08-01 14:22:39 531
转载 滑动惯性动画学习
滑动惯性动画学习 VelocityTracker 速度追踪 1.在 view.onTouchEvent() 获取 VelocityTracker 对象2.使用拿到的 VelocityTracker 对象来计算x,y轴的速度3.在比较恰当及时的时机,将 VelocityTracker 对象释放掉,回收内存......
2022-07-28 15:37:39 206
原创 二、Android动画学习---属性动画
PropertyAnimation(属性动画)包括ValueAnimator和ObjectAnimator。
2022-07-28 15:07:14 692
原创 五、自定义控件:
parent-可选,一些在自定义的style中没有指定的属性会继承parentstyle中的值。说明属性name指定名称ChildMyTheme,parent表示继承MyTheme的所有样式,改样式可以自定义也可以是系统的。1.使用自定义控件,必须在布局文件中添加schemas声明,xmlnsapp=http//schemas.android.com/apk/res-auto,(1)系统主题androidtheme=”@androidstyle/ButtonBar”.........
2022-07-20 17:27:12 618
原创 三、View的事件分发机制
onTouchEvent()和onTouch()何时使用?onTouchEvent()和onTouch()方法优先级及控制关系MotionEvent:点击事件;
2022-07-20 17:11:49 1475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人