自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

倩倩的博客专属领地

Change The World By Program

  • 博客(60)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android屏幕适配之--通过修改系统的屏幕像素比来实现屏幕的适配效果

Android屏幕适配之–通过修改系统的屏幕像素比来实现屏幕的适配效果关于Android中dip,dpi,density,px的详细解释参考简书前辈的文章Android开发中dip,dpi,density,px等详解当然在下面的代码中,density代表的是缩放比,densityDpi代表的是像素密度(就是一个dp中有多少个px),Android官方中是以160为基准dpi做一个简要的说明:...

2019-08-30 18:17:43 1130

原创 Android屏幕适配之--自定义像素的缩放比例来实现屏幕适配

Android屏幕适配之–自定义像素的缩放比例来实现屏幕适配在Android的适配中,可以采用自定义布局的形式,来通过计算像素的缩放比例来实现适配。大致思路就是,通过拿到设备实际的长宽像素值来除以参考设备的长宽值,得到这一个比例值,在设置控件的长宽值得时候,拿到开发者指定的长宽值乘以这个比例值,就能得到控件的实际显示大小了,公式大致如下:scaleX = 设备实际像素值 / 参考设计图的像素值...

2019-08-30 18:17:03 834

原创 Paint方法总结(三):图层混合模式

Paint方法总结(三):图层混合模式参考扔物线大神博客离屏绘制在介绍图层混合模式之前先简单的说一下Android的离屏绘制。离屏绘制就是图层绘制的一种缓冲策略,通过canvas.saveLayer()将缓冲层保存起来,这个saveLayer会返回一个layerID,把图层先绘制在缓冲层,然后通过canvas.restoreToCount(layerId)恢复图层,将缓冲层的图像绘制在画布上...

2019-08-09 16:27:03 835

原创 Paint方法总结(二):着色渲染器Shader

Paint方法总结(二):着色渲染器ShadersetShader(Shader shader):设置着色器,对图层进行渲染,Shader一共有五个子类1、LinearGradient 线性渲染器 /** * Create a shader that draws a linear gradient along a line. * * @param x0 T...

2019-08-08 23:51:43 304

原创 Paint的方法总结(一):基本常用Api

Paint的方法总结(一):基本常用Apivoid setColor(int color): 设置颜色void setARGB(int a,int r,int g,int b): ARGB颜色,范围0-255;void setAlpha(int alpha):设置透明度,范围为0-255;void setAntialias(boolean aa):设置抗锯齿void setStyle(S...

2019-08-08 18:14:45 832

原创 setContentView是如何把布局加上去的

setContentView是如何把布局加上去的在Android开发中,最常见的代码就是setContentView,然后传入你写的布局ID,那么布局就被加载到界面中了,系统究竟是怎么被加到界面中的,就需要通过源码来查看了。点击setContentView方法,进去会发现调用了以下的代码public void setContentView(@LayoutRes int layoutResID...

2019-08-07 17:29:10 201

原创 Fragment+ViewPager+ButterKnife时控件会报空指针问题

Fragment+ViewPager+ButterKnife时控件会报空指针问题首先聊一下ViewPager+Fragment的机制吧,ViewPager在滑动的时候会缓存前后面各一个fragment,也就是说,一共是三个fragment在内存中,而如果滑动的过多的话,与视图fragment距离超过1的fragment就会被回收掉。那接下来再聊一下ButterKnife在fragment中的绑...

2019-05-30 11:21:23 1069

原创 浏览器内置对象

浏览器内置对象Location以如下地址栏中的数据作为参考对比http://localhost:63342/FizzerBuy/BaseJs/Location%E5%AF%B9%E8%B1%A1.html?_ijt=7gtetd5t9cdj568ssbce613hd0host:主机及端口号 输出:localhost:63342hostname:主机名 输出: localhosthr...

2019-04-08 22:23:46 629

原创 Js中预解析

关于Js中预解析的一些案例分析通过个人的理解,预解析就是JS在代码执行过程中,会将代码中的一些变量个函数预解析加载到内存中案例一:下面看一下一些小小的案例console.log(a);var a = 10;输出结果:undefined代码分析:在js代码的执行过程中,输出变量a在前,但是变量a的定义在后,所以JS在预解析的时候会将变量的声明放到前面去,然后输出变量的时候就是未定...

2019-03-09 00:22:21 138

原创 Python基础_文件操作

Python中的文件操作Python中文件的打开方法 :open(name[,mode[buf]]):打开文件name:表示文件的路径mode:表示文件的打开方式buf:表示缓冲区的大小mode说明r:只读方式打开,文件必须存在w: 只写方式打开,文件不存在则会创建文件,文件存在则会清空文件a: 追加方式打开,文件不存在的时候会创建文件r+ 或者w+: 读写方式打开a+ 追...

2019-01-31 16:16:18 159

原创 Python基础_字符串的格式化

字符串的格式化在格式化中,使用{}来占位需要替换的域位置参数在format函数中,一次传入对应位置的需要替换的值 >>>"{0} love {1}".format("Fizzer","Ariel") Fizzer love Ariel关键字参数关键字参数,需要替换的域使用{a},{b}来表示,在format函数中,传入a="Fizzer",b={Ar...

2018-12-26 10:47:54 125

原创 Android Gradle配置构建

Android Gradle配置构建使用gradle构建不同的应用名和图标详情可以参考学习链接 文章链接对于manifest中字段,可以在gradle中通过manifestPlaceholders来进行配置,具体的写法manifestPlaceholders=[key:value] 例如我想在debug版本和release版本通过appname和icon进行区分的话可以在buildType...

2018-12-13 16:14:22 163

原创 Java基础知识拾遗--IO篇

Java基础知识拾遗–IO篇PropertiesProperties是HashTable的子类,也就是说他具备map集合的特点,而且他里面是以键值对的形式进行存储的,且键值对都是字符串。是集合和IO技术相结合的集合容器该对象的特点是可以用于键值对的形式的配置文件接下来看看Properties类的几个常用APIvoid list(PrintStream out) 将属性列表输...

2018-08-21 23:26:43 158

原创 Kotlin的一些特殊运算符

Kotlin的一些特殊运算符区间区间表示的是一个范围,类似于数学概念上的区间,是ClosedRange的子类,IntRange最常用基本的写法 0..100表示 [0,100] 0 until100 表示[0,100) 可以使用in操作来判断是否某个元素是否存在,也可以使用IntRange对象的contains()方法来判断代码示例:val mRange: IntRa...

2018-08-08 14:13:21 605

原创 Kotlin的基本数据类型

Kotlin入门Kotlin是一门可以运行在java虚拟机、Android、浏览器上的静态语言,与 Java100%的兼容Kotlin的基本数据类型Boolean类型val bol: Boolean = trueval otherbol: Boolean = falseNumber类型Kolitn中Number类型主要分为浮点型和整形浮点型Double : ...

2018-08-07 16:21:31 274

原创 Java基础知识拾遗—集合篇之List

Java基础知识拾遗——集合篇之List一、关于ArrayList和LinkList中contain()和remove()方法的底层调用contain():判断集合中是否包含某元素 remove():如果集合中包含某元素,则移除该元素可以知道,这两个方法都对集合中的元素进行了包含判断,那么在集合的内部对元素是如何进行判断的呢?通过查看源码我们知道,其实在调用contian...

2018-07-05 23:16:48 162

原创 Python基础_列表与元组

list:列表Python内置的一种数据类型是列表list,list是一种有序的集合,可以随时添加删除其中的元素使用 [ ] 表示示例: name = ["Fizzer","Doraemon","Michael"]对列表数据的读取:对list数据的读取类似于数组的形式,直接采用列表名加索引就可以了,例如name[0] ,使用len(name)可以获取数组的长度,如果要获取最有一个元素,除了计算

2018-01-17 15:41:52 267 2

原创 前端基础学习之CSS样式

CSS样式CSS背景background-color为元素设置背景色,该值接受任意一个合法的颜色值,如果不设置,则默认为transparent透明色background-image为元素设置背景图片,属性的默认值为none,表示元素上不放置任何图片backgroung-repeat可以为元素的背景图片实行平铺,属性值repeat表示在水平和竖直方向上进行平铺操作,属性repeat-x表示在水平

2017-07-27 14:16:47 444 2

原创 前端基础学习之CSS选择器

CSS基础之选择器派生选择器通过元素在其位置的上下文关系来定义样式,使标记更加简洁 派生选择器允许你根据文档的上下文关系来定义某个标签的样式,通过合理的使用派生选择器,可以是Html代码更加的简洁代码示例:li strong { font-style: italic; font-weight: normal;}在上面例子中,只有li元素中的strong元素样式为斜体字,无需为stron

2017-07-26 15:31:41 303

原创 前端基础学习之Html标签

基础标签标题通过 <H1> ~ <H6>来标记,数值越小,字体越大段落标签通过 <p>来定义,浏览器会自动的在段落前后各添加一个空行<br/>标签用来表示换行链接标签通过 <a>来定义,代码示例 <a href="http://www.w3school.com.cn">This is a link</a>图像标签是通过 <img>来定义,代码示例: <img src="w3school

2017-07-25 16:15:31 267

原创 保存Drawable资源为Bitmap文件

保存Drawable资源为bitmap文件在实际开发中有时候会需要保存项目的drawable文件为bitmap文件下面的代码是网上能找到的public Bitmap convertViewToBitmap(View view){ view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap bitmap

2017-06-12 15:35:33 547

原创 使用Palette来对图片进行颜色提取

使用Palette来对图片进行颜色提取Palette是Google在5.0中引入的来获取bitmap颜色值的一个工具类,为了兼容以前的版本,所以放在Support v7 Library中,在使用该类之前,需要在gradle中添加引用compile 'com.android.support:palette-v7:25.3.1'使用:Palette是一个调色板,通过传入一个bitmap对象来获取一个颜

2017-04-27 14:32:37 1386

原创 Android开发中gitignore文件模板添加

Android Studio会自动生成一个模板,但是有时候还是有些文件没办法过滤掉,所以就需要手动的添加,一下是在项目中实际应用到的一个ignore文件,这里贴出来,方便以后粘贴复制使用Built application files *.apk *.ap_ Files for the ART/Dalvik VM *.dex Java class files *.class

2017-04-24 08:59:08 564

原创 Android自定义控件之虚线的用法

Android实现画虚线的方法Android中可以通过DashPathEffect来实现,想知道关于PathEffect的详细用法,请移步PathEffect的详细用法代码示例:PathEffect effects = new DashPathEffect(new float[]{30,10},step);mPaint.setPathEffect(effects);参数说明:float数组中的

2017-04-12 17:13:21 897 2

原创 Android7.0中关于popupWindow的bug解决办法

在Android7.0中由于设置的popupWindow的宽度过大的话,在显示的时候调用showAsDropDown()方法的时候,pop默认是全屏显示的,并不是在指定控件的下方显示,这个时候往往需要调用showAsLocation()方法,但是showAsLocation()方法在Android7.0一下的时候又不会出现在控件的指定位置,所以就会出现问题(PS:笔者是在开发过程中发现的)下面

2017-03-16 17:43:28 1398

原创 简单的获取Android手机屏幕的像素

在开发中,有时候需要获取屏幕的像素点,其中一种方法是我下项目中常用的,这里贴出来WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics outMetrics = new DisplayMetrics(); wm.getDe

2017-02-27 13:54:43 984

原创 Android自定义控件之自定义倒计时按钮

自定义的倒计时按钮应该很多人都做过,我想最常见的实现方式应该就是开启一个子线程,然后通过Handler去更新UI实现,这里我自定义了一个按钮,通过在handler中发送handler的方式,也同样实现了计时器的效果,而且也不需要开子线程,是代码的内存消耗更小更具有操作性实现效果如下直接上代码:package com.fizzer.doraemon.local

2016-12-14 16:52:10 564

原创 Android属性动画初探之ObjectAnimator

属性动画ObjectAnimatorObjectAnimator使用它的ofFloat方法,来构造一个属性动画ObjectAnimator.ofFloat(Object target,String propName,float... valuse)参数讲解Object traget: 表示需要执行动画的目标类 String propName: 表示需要变化的属性名称; float values

2016-12-12 23:37:12 711

原创 自定义Android中Dialog的弹出动画

在Android开发中需要自定义Dialog,有时候有需要去指定这个dialog的弹出样式,或者是弹出来的动画效果,那这个时候如何去做呢?下面以一个简单的示例作为介绍,方便以后学习,这个效果是模仿的IOS的弹出和消失效果,下面是效果图:其实这个动画效果分解开来很简单,就是一个放大缩小的scale动画和透明的alpha动画一起叠加而来的要做这个很简单,首先要在res目录下新建一个

2016-11-07 10:52:44 5667 1

原创 Android中ListView复用导致布局错乱的解决方案

首先来说一下具体的需求是什么样的:需求如图所示,这里面有ABCD四个选项的题目,当点击A选项,如果A是正确的答案,则变成对勾的图案,如果是错误答案,则变成错误的图案,这里当时在写的时候觉得很简单,只要是在点击的时候判断我点击的选项与正确答案是否一样,是一样就将图片换成正确的样式,如果不一样就换成错误的样式,于是我便写了下面的代码(只贴出了核心Adapter中的代码)packag

2016-10-10 23:14:12 7095 4

原创 Android自定义控件之实现listview滑动时渐隐渐现顶部栏

我在开发的时候遇到了这样的需求,就是在listview的滑动中,需要对顶部的栏目由透明慢慢的变为不透明的状态,就是以下的效果最先开始的时候想的很简单,无非就是监听listview的滑动距离,然后根据距离算出透明度的比值,就可以了,但是事实上呢也的确是这样做的只是在获取listview的滑动距离上可能没法直接获取,需要动态的去计算下面贴出全部代码吧,不想码字了,最近感冒了,脑袋晕

2016-09-06 17:16:37 2047

原创 Android自定义控件封装之自定义属性的实现

我们在开发中有时候会遇到一些自定义组合控件,但是希望自己的组合控件能像原生控件那样有些通过XML中的属性来控制,那么就需要我们去自定义属性了1:首先在values/attrs.xml中进行属性的定义 2:在定义好这些属性后,就需要在自己自定义的类中进行获取和操作了public MyAp

2016-08-19 11:14:25 992 2

原创 ViewPager中添加Fragment的方法实现

有时候我们在使用ViewPager的时候可以向里面加入一个自定义的view,也可以加入一个Fragment,那如何加入Fragement创建一个Viewpager的适配器,然后需要继承FragementPagerAdapter类,在该类中,需要创建一个构造方法,实现getItem和getCount两个方法,当然如果还需要更多的扩展的话,还可以实现里面别的方法;具体代码实现:

2016-03-25 17:53:53 3275

原创 汉诺塔游戏算法实现

笔者以前在大学里面学习算法的时候一直没有把汉诺塔这个游戏给整明白,直到在工作被人问起,然后一脸的尴尬说我不知道才意识到我以前的大学都白读了,甚是惭愧啊,研究一会儿之后,做个笔记,算是给自己的大学算法老师做个交代吧汉诺塔游戏简介:有三根柱子,假设为X, Y ,Z三根柱子,现在X柱子上放置了诺干个圆盘,按照小的在上,大的在下的顺序排放,现在需要将X柱子上的圆盘通过Y柱子去全部移动到Z柱

2016-02-28 23:06:56 1540

原创 拍照后旋转图片

笔者在开发中有遇到过这样的问题,就是在三星 note4手机上拍照,发现图片是自动旋转90度的,导致最后上传的图片是旋转的,为了解决这个问题,我们就需要先获取图片的旋转度信息,然后再将图片按照一定的角度旋转过来,最后上传以达到我们想要的效果获取图片的旋转度 /** * 获取图片的旋转度 * * @param path 图片的路径 * @retur

2016-02-17 15:28:30 537

原创 如何使用DDMS读取data/data目录下的文件

1:首先找到sdk/platform-tools的路径,并打开命令窗口,进入到该目录下2:依次键入一下命令 adb shell su -c "chmod 777 /data"adb shell su -c "chmod 777 /data/data"这时就可以了

2016-02-16 16:19:54 1573

原创 Android中保存网络图片到SD卡

/** * 下载闪屏页的图片 */ private void loadFirstImage(final String url) { /** * 在子线程中开启下载图片的任务 */ new Thread(new Runnable() { @Override

2016-02-15 16:24:12 412

原创 Android中关于键盘的处理

强制关闭键盘InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);开启软键盘InputMethodManager imm = (

2016-01-26 19:21:33 470

原创 拍照保存

在多媒体应用制作中,我们经常会用到camera,那么到底如何调用系统的camera呢:1.调用相机:           Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);           startActivityForResult(intent, 1);只需要把这两句代码写进button的on

2016-01-22 14:51:12 350

原创 MAC下Android Studio快捷键的配置

刚开始接触Android  Studio,还是在mac的环境下,所以很多的一些快捷键都是很熟悉,这里做一个简单的记录:1:查找类中的某个方法并快速定位过去: 这个快捷键我也找了很久,好像最后也是没找到,只能将快捷键模式改为eclipse的,找到对应的方法,然后在mac的环境下找到对应的文件修改快捷键,说方法,首先进入到keymap中 查找File Structure  将这个条目的快捷

2016-01-11 11:47:48 552

空空如也

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

TA关注的人

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