bcoder

1月 252017
 

  本文和上一篇文章类似,只是增大了圆角半径的值,所以左右两边看着像椭圆形状,我们先来看看完成后的效果图:

  首先,在res/drawable目录下新建一个shape形状,文件名为round_rect_oval_btn_normal.xml,代表按钮正常情况下的样子,代码为:

  第二步,为按钮按下状态新建一个文件,在res/drawable目录下新建文件名为round_rect_oval_btn_pressed.xml,文件内容为;

  接下来,把两个样式组合起来,使用selector资源,在res/drawable目录下新建文件round_rect_oval_btn_selector.xml,并输入文件的内容:

  好了,如果你现在想看一下按钮的效果,可以在activity上放一个TextView或者按钮,并设置它的background为@drawable/round_rect_oval_btn_selector。

  当然,为了保持代码的简洁和以后方便扩展,我们还是为这类按钮新建一个样式,在res/values/style.xml中新建一个名为round_rect_oval_btn_bkg的样式,并设置如下:

  现在再回到acitivy中为你的TextView或者按钮设置style属性为style=”@style/round_rect_oval_btn_bkg”就可以了。

 Posted by on 2017-01-25
1月 252017
 

  本文将介绍不使用外部图片,通过android的drawable资源实现圆角按钮的效果,并且在按钮按下时背景也会发生变化。使用到的drawable资源类型,shape和selector,效果图如下所示:

  首先在res/drawable中新建一个资源文件,全名为round_rect_btn_normal.xml,文件内容为;

  第二步再为按钮按下时创建一个相关的背景资源,在res/drawable中新建一个名为round_rect_btn_pressed.xml的文件,文件内容为:

  第三步,把这两个资源组合起来,使背景同时具有正常状态和按下状态的效果,在res/drawable中新建一个名为round_rect_btn_selector.xml的文件,并复制以下内容到文件中:

  注意:不带state的item一定要放到最后一行。

  第四步,如果现在就就想看效果的话,可以给TextView或者Button的background属性设置为@drawable/round_rect_btn_selector就能看到效果了;

  第五步,为了保持代码的风格良好和以后的扩展方便,我们还是先建一个style吧,在res/values/style.xml中新建一个style,如下:

  最后,把TextView或者Button的style属性设置为@style/round_rect_btn_bkg就可以,如下所示:

  好了,赶紧点击运行按钮试一下效果吧!

  大家可以根据自己的需求,改变round_rect_btn_normal.xml和round_rect_btn_pressed.xml里的颜色值和边框属性等,以和自己的app的风格搭配。

 

 Posted by on 2017-01-25
1月 252017
 

  运用好Android的drawable资源,在开发中就可以减少图片的使用量,这样既缩小了app的体积,也省去了设计图片的时间,而且也容易适配不同的屏幕尺寸。

  今天首先来讲讲shape资源的使用。

1. Shape的属性介绍

  shape共支持四种形状,在根节点通过android:shape=””来定义

rectangle 方形
oval 椭圆形
line 线形,需要<stroke>节点来定义其属性
ring 环形

  我们常用的应该是rectangle和oval形状,我们上个图来看一下总体效果:

  其中下面几个属性是环形时才会用到的:

android:innerRadius 尺寸。环内部(中间的孔)的半径,以尺寸值或尺寸资源表示。
android:innerRadiusRatio 浮点型。环内部的半径,以环宽度的比率表示。例如,如果 android:innerRadiusRatio=”5″,则内半径等于环宽度除以 5。此值被 android:innerRadius 覆盖。默认值为 9。
android:thickness 尺寸。环的厚度,以尺寸值或尺寸资源表示。
android:thicknessRatio 浮点型。环的厚度,表示为环宽度的比率。例如,如果 android:thicknessRatio=”2″,则厚度等于环宽度除以 2。此值被 android:innerRadius 覆盖。默认值为 3。
android:useLevel 布尔值。如果这用作 LevelListDrawable,则此值为“true”。这通常应为“false”,否则形状不会显示。当我们要设计一个圆形时必须设置它为false。

2.子节点之实色填充效果

  solid节点可以实现形状的填充效果,通过android:color属性设置颜色值,如下示例:

3.子节点之渐变填充效果

  gradient节点可以实现渐变的填充效果,示例如下:

4.子节点之实现边框效果

  各个属性值的解释:

android:color 线框的颜色
android:width 线框的宽度
android:dashGap 如果画虚线框,虚线框的间隙
android:dashWidth 如果画虚线框,虚线框的宽度

5.子节点之实现圆角效果

  为了美观,我们在画按钮时都会给按钮背影加个圆角效果,在shape里可以通过corner节点来实现圆角效果,如下所示:

  radius用于设置圆角的半径大小,也可以通过android:topLeftRadius,android:topRightRadius,android:bottomLeftRadius,android:bottomRightRadius分别设置四个角的圆角半径大小,比如在实现tab标签头部按钮时,我们可能只需要为左上和右上角设置圆角效果。比如还可以实现一些特殊形状的导航按钮等等。

6.padding节点

  padding节点用于设置形状相对于四边的内部间距,可以用于在layer-list中设置阴影的效果。

 Posted by on 2017-01-25

c++处理ctrl+c的中断

 分类:C++, Others 阅读 (3,258)  No Responses »
1月 222017
 

  如果按ctrl+c时未做一些处理 ,可能会造成一些资源未释放,比如网络端口被占用。

  捕获ctrl+c需要使用c库的signal函数,具体代码如下:

  输出结果:

 

 Posted by on 2017-01-22
1月 172017
 

  在使用友盟统计的时候,我们需要在AndroidManifest.xml为每个不同的渠道设置一个渠道名称,然后修改一次打一次包,当渠道多的时候这样非常的麻烦。庆幸的是,gradle脚本有方便的方法可以实现多渠道一次打包。

  首先在AndroidManifest.xml中这样配置友盟的渠道信息:

  umeng_channel_holder相当于为gradle的脚本定义了一个变量,稍后会在gradle脚本中使用,你也可以定义成其他的名字,只要用${}括起来就可以了。

  下面我们在主gradle文件中为这个变量设置不同的配置信息,这段信息要放在android->productFlavors节点下,如下所示:

  如上代码我配置了wandoujia, baidu, xiaomi, tencent, jeoe共五个渠道,这样就配置完成了,点击Build->Generate Signed APK,在第三步的时候所选要打包的flavor就可以一次生成多个安装包了。

 Posted by on 2017-01-17
1月 172017
 

  本文为了说明基类和派生类的构造函数的声明和使用,主要是以下几点:

  1. 派生类所有构造函数都会默认调用基本的默认构造函数(没有参数的构造函数,如Base())
  2. 派生类如果想显示的调用基类的带参数的构造函数,要在派生类的初始化器处调用,而不能在构造函数的实现里调用(即不能在花括号里调用{})

  示例代码如下:

  输出结果如下:

 

 Posted by on 2017-01-17
1月 162017
 

直接上代码:

 

 Posted by on 2017-01-16
1月 162017
 

  有时我们需要用户给我们的应用进行五星好评,这就需要app给用户提示信息后,自动打开app在应用市场中的详情页,那么我们可以通过下面的代码打开详情页面

  其中com.jeoe.cloudnote代表你的app的包名

  Android中获取应用市场列表的方法

 Posted by on 2017-01-16

greenDAO混淆配置

 分类:Android, Java 阅读 (3,884)  No Responses »
1月 092017
 

如果你的项目中使用了greenDAO并且使用了混淆,那么请为greenDAO增加混淆配置,如下:

官方原文地址:http://greenrobot.org/greendao/documentation/updating-to-greendao-3-and-annotations/#Step_1_Update_dependencies_to_V3

Eventbus混淆配置

 分类:Android, Java 阅读 (3,070)  No Responses »
1月 092017
 

如果你的项目使用了Eventbus并且使用混淆,那么你需要为Eventbus配置混淆,代码如下:

官方原文地址:http://greenrobot.org/eventbus/documentation/proguard/