ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。 设置的方式包括:

  1. 在layout xml中定义android:scaleType="CENTER"
  2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

scaleType属性如下: - android:scaleType="matrix"不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。

  • android:scaleType="center"按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

  • android:scaleType="centerCrop"; 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽) 

  • android:scaleType="centerInside"将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽 

  • android:scaleType="fitCenter"把图片按比例扩大/缩小到View的宽度,居中显示

  • android:scaleType="fitStart", android:scaleType="fitEnd"在图片缩放效果上与FITCENTER一样,只是显示的位置不同,FITSTART是置于顶部,FITCENTER居中,FITEND置于底部。

  • android:scaleType="fitXY",不按比例缩放图片,目标是把图片塞满整个View。 效果图如下:

效果图

ImageView的android:adjustViewBounds属性为是否保持原图的长宽比,单独设置不起作用,需要配合maxWidth或maxHeight一起使用。

写在最前: 最近一直在研究CentOS下Jenkins的配置Android自动打包工程时,使用到了gradle,所以这里介绍一下CentOS下Jenkins的配置

gradle与其他比如JDK、Android SDK等的配置不同,它并无系统区分,不管你是Windows、Linux还是MAC都可以使用同一个安装包

1.下载压缩包

进入gradle官网,下载压缩包,

gradle官网

在红色圈的区域选择版本,我写博客时最新版本为2.9,如图所示,压缩包分为三种,按照自己的需求来下载就好。

2.Copy到CentOS中解压

复制的话,可以选用Xftp这个软件,它与XShell是一套的,比较好用,使用方法与XShell相同,简单易懂。

我把压缩包放到了/usr/local/下,便于自己的管理,

随后打开XShell,连接到服务器,使用命令vim /etc/profile打开 etc下的profile文件,配置环境如下:

配置环境

写完之后,保存之后,运行命令source /etc/profile 使刚刚的配置生效。

3.检测配置是否成功

打开XShell,运行命令gradle -version,有过JDK环境配置的同学,应该懂。

然后会出现:

gardle -version

包括的东西如上。

OK,配置起来相对比较简单。

写在最前: 挖坑Jenkins,自己一个人研究一个啥都不懂的东西对我来说是一个难度比较大的事,毕竟我是一个喜欢跟大伙一起工作的人。今天记录一下Windows下Jenkins构建Android自动打包,由于前两天事情比较多,博客就只能延误了,罪过罪过。废话不多说,马上开始。

在正式开始之前,首先来介绍一下Jenkins到底是一个什么样的工具呢?Jenkins是一个集成开发环境,它的前身是Hadson,被Oracle收购之后,就换成Jenkins这个名字了,但是还是开源的。这一点是比较不错的。

Jenkins其实就是一个后台服务加上Web管理配置页面的一个应用,它可以自动化or定时or事件触发地执行某项任务(就是jenkins里面的job),比如编译、测试、打包、发布等等。这个在Web开发、APP开发等大项目的多人合作上是非常有帮助的。只要配置好了,每个人只需要把自己的工作做好即可,Jenkins会自动的从svn或git上获取最新的代码,整合编译发布。也就是说发布版本的流程上很大一部分工作都由jenkins自动完成了,确实帮程序猿们省了时间。

Jenkins软件的设计是基于主从(Master–Slave)式框架,在Windows、MAC或Linux配置好了主程序(Master)之后,再配置多个执行任务的节点(Slave),然后主程序(Master)发出构建任务的命令,这些任务的执行者-节点(Slave)就会去执行编译、测试、打包、发布等任务,最后发布版本。下图为本人目前对Jenkins集成开发的理解:

我对jenkins的理解

首先来简单介绍一下,Jenkins自动构建app(不管是Android还是IOS或是其他平台的应用)的整个思路,Jenkins主程序(Master)构建任务,将任务(job)分配给job依赖的节点(Slave),那么这个节点就会按照任务的整个流程一个一个走,如果中间哪里出错了,会立即停止运行,或一直走完整个流程构建成功为止。拿打包Android APP的例子来说吧,首先节点将代码从SVN或GIT中download下来,然后执行构建,打包,再执行构建完成之后的工作。

本文以Android ant打包为例,来介绍构建Android APP的例子。因为这个例子是拿我本地jenkins来写的,所以没有体现主从(Master–Slave)的关系,后面会详细介绍。

1.新建任务Job

点击"新建"

新建job

进入新建job首页,

新建1 Item名称填写这个Job的名称,往下,一般选择"构建一个自由风格的软件项目",之后进入主要设置界面,

项目介绍 项目介绍,不用多说,往下翻

2.配置代码库

我用的snv,与git的配置有点区别,但是不大,也比较简单,

svn配置

一般简单配置如上,就行。如果有不懂填什么的话,可以点击右边红色框框里的问号图案,该怎么填,里面都有介绍,详细的不能再详细了。

3.配置构建触发器

构建触发器,红色圈内,设置说明比较详细: 构建触发器

构建任务配置: 配置ant构建

里面可以配置许多东西,这里只用到了Ant,所以其他选项没有设置

4.构建后配置

构建后配置: 构建后

可以看见构建之后的配置也是非常多的。详细介绍可以看问号的详细说明

完成配置之后,点击"立即构建"

立即构建

5.查看控制台

构建开始,点击"Console Output",就可以看到控制台的输出,如下图:

控制台输出

6.构建完成结果

构建完成之后,最后输出结果,如下图: 最后输出结果

可以看到"最后一次成功的构建结果",就是上述构建之后配置的结果,好处在于便于我们查看最后的显示结果。

OK,Windows配置基本完成,下面来说一下配置注意的问题

注意事项:

  1. 首先在本机把jdk、Android sdk、ant配置好(因为目前博客主要讲的是单机的Jenkins,没有体现M/S的构架)

  2. 其次在本机上使用ant build命令运行工程下的build.xml文件,查看是否能正确打包,再配置job

  3. 再者,如果只会使用eclipse打包,没有接触过ant打包Android项目的同学,建议先学习一下ant打包,里面知识非常多,功能也比较齐全,我在这里就不一一赘述了。

最后: 由于第一次写比较长的博客,所以可能会有一部分没有表达完整。。如果有哪里不懂,可以直接邮箱^hello给我。多多指教!

写在最前: 挖坑Jenkins,一个从来没有用过,更没有听说过的东西,只能说要学的东西还有很多很多。

这篇文章主要介绍一下,windows在Jenkins的搭建,以及插件的安装,接下来的几篇将详细介绍,Jenkins下自动打包Android程序。

1.下载Jenkins

百度关键字,Jenkins下载,如下图:

百度Jenkins 点击红色区域的网址,或者直接点击Jenkins官网链接,出现下图的网址,

Jenkins官网

点击Windows版本的后缀为.war的文件下载。

2.安装Jenkins

解压.war安装包

解压

点击setup.exe文件,进行安装。 安装完毕后,在浏览器输入localhost:8080,查看Jenkins页面。

jenkins页面 这里写图片描述 OK,Jenkins安装成功

3.安装插件

这里拿几个简单的插件来做介绍,还有笔者遇到的一个问题,以及解决办法一同写在这里。

点击“系统管理”

系统管理

进入管理页面,之后点击“插件管理”

插件管理

进入插件页面,然后点击“可选插件”,在右上角可以过滤一个你想要的插件,

过滤插件

随后,勾选插件,点击“直接安装”,下载即可,等待其下载安装即可。

在这里我遇到一个问题,就是下载插件时,不能连接到jenkins插件的服务器,坑爹。。。

解决办法之一:下载插件 然后手动安装,点击插件管理--》高级,

高级插件管理

点击之后,页面下拉,你会看到“上传插件”如图:

上传插件

点击“选择文件”找到之前下载完成的.hpi后缀名的安装包,选择安装包,之后点击“上传”,然后静静等它安装完毕即可。

解决办法二:翻墙。。

到此,Windows下简单的配置Jenkins完成了


写在最前:不管在什么系统中,如果你应用的图片资源比较多的话,会导致安装包较大,比如四角有弧度的长方形、圆形、正方形等等简单图形,完全没有比较实用图片,在Android中如何优雅的避免这个问题呢,就是使用shape了。


1.新建文件

首先在你的项目下新建drawable文件夹,你的shape xml文件就放到这个地下,然后新建Android xml文件,如图:

新建xml文件

2.下面来介绍一下shape的属性

属性

如图,shape有6个属性,分别为:

  • corners:设置圆角,即四个角的弧度
  • gradient:颜色渐变
  • padding:间隔,xml里经常用到,不比多解释
  • size:长宽
  • solid:填充物,只有一个属性 -> 颜色
  • stroke:设置图片边缘颜色

来看一下官方给我的详细解释:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape=["rectangle" | "oval" | "line" | "ring"] >
    <corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
    <gradient
        android:angle="integer"
        android:centerX="integer"
        android:centerY="integer"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
    <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
    <size
        android:width="integer"
        android:height="integer" />
    <solid
        android:color="color" />
    <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
</shape>

形状的属性,只有这6种,下面详细介绍一下6种属性下的各个属性的意义,

**1).corners:Creates rounded corners for the shape. Applies only when the shape is a rectangle.创建圆角的形状。仅适用于当其形状是一个长方形

android:radius="20dp"  为角的弧度,值越大角越圆。
android:topRightRadius="20dp"  右上角
android:bottomLeftRadius="20dp"   右下角
android:topLeftRadius="1dp"   左上角
android:bottomRightRadius="0dp"   左下角

一个提示:bottomLeftRadius 是右下角,而不是左下角,谨记谨记,其实记反了也没有多大影响。

2).gradient:Specifies a gradient color for the shape.指定一个渐变颜色的形状。 android:startColor 起始颜色 android:endColor 结束颜色 android:centerColor 中心颜色 android:angle 渐变角度,必须为45的整数倍。 android:type 渐变模式默认为linear,即线性渐变,可以指定渐变为径向渐变,android:type="radial" android:gradientRadius="50" 径向渐变需要指定半径 android:useLevel 值为true或false,至今不知道有什么作用

3)padding : 定义内容离边界的距离

android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp"

4)size:The size of the shape.形状的长宽

android:height="100dp"
android:width="100dp"

5)solid :A solid color to fill the shape.填充颜色

android:color  指定填充的颜色

6)stroke:A stroke line for the shape.图形边缘画线

android:width="2dp"  描边的宽度
android:color="#FFFFFF"  描边的颜色
android:dashWidth  虚线中这样一个'-'横线的宽度
android:dashGap  两个'-'之间的距离