自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

闫建洋的博客

毋意、毋必、毋固、毋我

  • 博客(13)
  • 资源 (4)
  • 收藏
  • 关注

原创 2018年年末总结及2019年规划

2018年的经历2018年匆匆而过,还记得18年年初从某金融公司离职(离职原因是经历了人生中第一次被拖欠工资…拖欠了3个月之久),然后逃荒似的从北京2环外的自如寓,搬到了5环外顺义区的自建房,说来有点小庆幸,就在下一顿饭可能都吃不饱肚子的时候,女朋友仍对我不离不弃,并在她不断的鼓励下,我找到了一家外包公司…虽然社会上对外包公司好像不怎么友善,的确,外包公司面临的福利待遇等等可能确实欠缺,但是我...

2019-01-23 09:54:45 627 1

原创 Handler.sendEmptyMessageDelayed是否与MainThread异步

新建TestForHandlerDelayed项目测试,代码如下:public class MainActivity extends Activity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceStat...

2018-11-29 10:33:26 1033

原创 菜鸟进阶笔记|SurfaceView模板

SurfaceView与View的不同主要体现在一下几点View主要适用于主动更新的情况下,而SurfaceView主要适用于被动更新,例如频繁的刷新。View在主线程中对画面进行刷新,而SurfaceView通常会通过一个子线程来进行页面的刷新。View在绘图时没有使用双缓冲机制,而SurfaceView在底层实现机制中就已经实现了双缓冲机制。总结成一句话就是:如果你的自定义Vi...

2018-05-03 16:17:08 251

原创 菜鸟进阶笔记|初探自定义View06|Canvas绘图技巧

举个栗子,我们要绘制如下效果图: 实现如下:public class ClockView extends View { public ClockView(Context context) { super(context); } public ClockView(Context context, @Nullable AttributeSet a...

2018-05-02 11:48:40 138

原创 菜鸟进阶笔记|自定义dp、sp与px转换工具类

新建DisplayUtils,代码如下:/** * dp、sp转换为px的工具类 */public class DisplayUtils { /** * 将px值转换为dip或dp值,保证尺寸大小不变 * * @param context * @param pxValue (DisplayMetrice类中属性density) ...

2018-05-02 10:37:07 166

原创 菜鸟进阶笔记|初探自定义View|05|自定义ViewGroup

类似ScrollView的滑动,并附加黏性效果自定义View中代码如下:public class MyScrollView extends ViewGroup { private static final String TAG = "MyScrollView"; private Scroller mScroller; private int mScreenHei...

2018-04-17 15:19:22 166

原创 菜鸟进阶笔记|初探自定义View|04|重写View来实现全新的控件

当安卓系统无法满足我们的需求时,我们就可以完全创建一个新的自定义View来实现需要的功能。创建一个自定义View,难点在于绘制控件和实现交互,这也是评价一个自定义View优劣的标准之一。通常需要继承View类,并重写它的onDraw、onMeasure()等方法来实现绘制逻辑,同时通过重写onTouchEvent()等触控时间来实现交互逻辑。当然,我们还可以像实现组合控件方式那样,通过引入自定义属...

2018-04-12 10:13:20 166

原创 菜鸟进阶笔记|初探自定义View|03|创建复合控件

创建复合控件创建复合空间可以很好的创建出具有重用功能的控件集合。这种方式通常需要继承一个合适的ViewGroup,再给它添加指定功能的控件,从而组合成新的复合空间。通过这种方式创建的控件,我们一般会给它指定一些可配置的属性,让它具有更强的拓展性。下面就以一个TopBar为示例,我们知道,为了程序风格统一,很多程序都有一些共通的UI界面,比如TopBar这样的标题栏。通常情况下,这些界面都会被抽...

2018-04-11 16:58:44 141

原创 菜鸟进阶笔记|初探自定义View|02|对现有控件进行拓展

在View中通常有以下一些比较重要的回调方法:onFinishInflate():从XML加载组件后回调。onSizeChanged():组件大小改变时回调。onMeasure():回调该方法来确定显示的位置。onLayout():回调该方法来确定显示的位置。onTouchEvent():监听到触摸时间时回调。当然,创建自定义View的时候,并不需要重写所有的方法,只需要重写特...

2018-04-11 16:28:45 153

原创 菜鸟进阶笔记|初探自定义View|01|使用MeasureSpec控制自定义View大小

Android系统给我们提供了一个设计短小精悍却功能强大的类——MeasureSpec类,通过它来帮助我们测量View。MeasureSpec是一个32位的int值,其中高2位位测量的模式,低30位为测量的大小,在计算中使用位运算的原因是为了提高并优化效率。——Android群英传新建MyView类,继承View。public class MyView extends View { ...

2018-04-11 10:06:32 215

原创 菜鸟进阶笔记|SQLite|01|SQLite二次封装

经过了一天的时间,不断的修改,终于跑通它啦,写到这里记下来供自已以后使用~1.首先新建 一个Bean:public class ExamInfo { public static int id; public static String name; public static String examid; public static String file...

2017-05-11 14:38:46 457

原创 菜鸟进阶笔记|实现时分秒的倒计时效果

activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:grav

2016-11-01 14:48:30 1137

原创 菜鸟进阶笔记|获取当前移动设备分辨率及DPI

DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);int width = metric.widthPixels; // 屏幕宽度(像素)int height = metric.heightPixels; // 屏幕高度(像素)flo...

2016-10-27 15:09:06 1579

demo_Viewpager加Fragment实现滑动菜单

Viewpager加Fragment实现滑动菜单

2016-12-07

demo_录音功能实现

实现调用系统录音,并将文件命名存于本地

2016-12-07

demo_Volley资源文件

实现Volley的基本用法

2016-12-05

demo_使用bilibili框架制作弹幕效果

demo_使用bilibili框架制作弹幕效果

2016-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除