getDimension、getDimensionPixelOffset、getDimensionPixelSize初级篇

序言

在Android应用开发的过程中,我们肯定会遇到一个问题 - 适配 ,这是一个非常头疼的问题,因为你面对的是各式各样的、千奇百怪的屏幕尺寸和分辨率,所以你不可能适配所有机型,只能适配主流的机型及分辨率,所以我们会配置不同分辨率的values(如:values-sw600dp,values-sw720dp),在values下面会有这样一个文件:dimens.xml,我们一般会在里面定义一些视图的尺寸值,可以是不同的单位,如:dp、dip、sp、pt、px、mm、in ,那么我们怎么读取这些值得?

官方API

google给我们提供了三个api使用:getDimension,getDimensionPixelOffset和getDimensionPixelSize,你都使用过吗?它们有什么不同?有什么使用场景?接下来就带大家简单了解一下这三个api的不同。首先得还是先看一下官方文档,这才是最权威的不是嘛。

getDimension

包 : android.content.res.Resources

  • Added in API level 1
  • float getDimension (int id)
  • Retrieve a dimensional for a particular resource ID. Unit conversions are based on the current DisplayMetrics associated with the resources.

Android刷机-命令篇

序言

命令行刷机和线刷本质差不多,一个是工具一个是手动的。
线刷包解压出来一般都是一些镜像文件(.img),像基带、内核、系统、recovery、boot等,要先关机,进入线刷(bootloader)模式下。如果电脑上有adb环境(没有就下载adb工具),直接执行

adb reboot bootloader

进入到线刷模式,下面就给出一些常用命令行(MOTO 为例)

命令行

1、刷入手机闪存分区表(请不要乱刷其他机型的,可能导致变砖,请在有教程指引下操作)

fastboot flash partition gpt.bin

2、刷入摩托罗拉bootleader(请一定不要跨机型刷,或者降版本刷,否则分分钟变砖)

fastboot flash motoboot motoboot.img

Android刷机-基础篇

序言

刷机有风险,操作需谨慎

先看看维基百科对刷机的解释:

刷机是一般的手机发烧友最开始接触到的相当有技术含量的一个词,泛指通过软件或者手机自身的OTA文件对系统文件进行更改从而使手机达到自己想要的或者更好的使用效果。有时,智能手机的系统被损坏,造成功能缺失或无法开机,也通常用刷机的方法恢复

刷机在Android系统中用得更广泛,随着Android系统不断升级,用户需要通过刷机来升级自身设备,或者用户想要体验更加流畅的操作与不同而进行第三方ROM进行刷机,也有一些工具或软件可以简化刷机流程

通常第一方ROM指的是操作系统开发者所发布的原生版本(如Google开发的原生Android版本),第二方指的是个手机制造商所开发出的版本(如HTC的Sense或Sony的接口),第三方则是由其他人或团队所开发(如Android中的Cygenmode(CM)团队, Slim等)

Android之自定义actionbar[笔记]

————字数统计 409 字 | 阅读时长 2 分钟————

自定义actionbar或toolbar的属性样式:

<style name="detail_actionbar_style" parent="AppBaseTheme">
        <item name="android:windowAnimationStyle">@null</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <!--<item name="android:colorBackgroundCacheHint">@null</item>-->
        <!--<item name="android:windowFrame">@null</item>-->
        <!--<item name="android:windowIsFloating">false</item>-->
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowTranslucentNavigation">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowActionBar">false</item>
        <!-- actionbar -->
        <item name="android:windowActionBarOverlay">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:actionBarStyle">@style/ActionBar.Style.Transparent</item>
        <item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
    </style>
    <!-- actionbar -->
    <style name="ActionBar.Transparent" parent="@android:style/Theme.Holo.Light">
        <item name="android:windowActionBarOverlay">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:actionBarStyle">@style/ActionBar.Style.Transparent</item>
        <item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
    </style>
    <!-- 实现Actionbar的透明度 -->
    <style name="ActionBar.Style.Transparent" parent="@android:style/Widget.Holo.ActionBar">
        <item name="android:background">@android:color/transparent</item>
        <item name="android:titleTextStyle">@style/ActionBarText</item>
    </style>
    <!-- 标题文字 -->
    <style name="ActionBarText">
        <item name="android:textSize">19sp</item>
        <item name="android:textColor">@android:color/white</item>
    </style>
    <!-- 重写actionbar中 OverFlow的属性 -->
    <style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
        <item name="android:src">@drawable/custom_actionbar_overflow</item>
    </style>

Android之Matrix

原作者: Qiengo
源地址: 点击跳转

Matrix的数学原理

在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类。Android中的Matrix是一个3 x 3的矩阵,其内容如下:
matrix_iamge_description

Matrix的对图像的处理可分为四类基本变换:

  • Translate - 平移变换
  • Rotate - 旋转变换
  • Scale - 缩放变换
  • Skew - 错切变换

从字面上理解,矩阵中的MSCALE用于处理缩放变换,MSKEW用于处理错切变换,MTRANS用于处理平移变换,MPERSP用于处理透视变换。实际中当然不能完全按照字面上的说法去理解Matrix。同时,在Android的文档中,未见到用Matrix进行透视变换的相关说明,所以本文也不讨论这方面的问题。

针对每种变换,Android提供了pre、set和post三种操作方式。其中:

  • set - 用于设置Matrix中的值。
  • pre - 是先乘,因为矩阵的乘法不满足交换律,因此先乘、后乘必须要严格区分。先乘相当于矩阵运算中的右乘。
  • post - 是后乘,因为矩阵的乘法不满足交换律,因此先乘、后乘必须要严格区分。后乘相当于矩阵运算中的左乘。

除平移变换(Translate)外,旋转变换(Rotate)、缩放变换(Scale)和错切变换(Skew)都可以围绕一个中心点来进行,如果不指定,在默认情况下是围绕(0, 0)来进行相应的变换的。

下面我们来看看四种变换的具体情形。由于所有的图形都是有点组成,因此我们只需要考察一个点相关变换即可。

| | 总字数统计:93.5k