zoukankan      html  css  js  c++  java
  • Drawable学习之---NinePatchDrawable(.9图片的制作)

    一、创建NinePatchDrawable

    一个NinePatch也是一个PNG的图片,不过不同的是可以为这种格式的图片定义可伸缩的区域,当某个视图的内容超过了正常的尺寸的时候,这种格式的图片会自动拉伸以适应不同的尺寸。一般这种图片是作为视图的背景,并且视图至少有一个尺寸(layout_width或者layout_height)是设置为"warp_content"。当视图自增长来适应内容的时候,Nine-Patch格式的图片也会相应的进行缩放来匹配视图的尺寸。


    NinePatchDrawable的创建方式几乎和BitmapDrawable一模一样,使用方式也没有多大的区别。只是在xml创建的时候,没有那么多的属性。

    [java] view plain copy
    1. <nine-patch xmlns:android="http://schemas.android.com/apk/res/android"   
    2.     android:src=""  
    3.     android:dither=""/>  

    它只有这三个属性。

    二、制作.9图片

         1,用一张干净的png图片放在mipmap里面。(jpg类型或者gif类型的不行)

          2,点击图片右键最后一项,create 9-patch file保存在drawable目录。(.9类型的图片只能放在drawable文件夹下)

          3,对drawable里面生成的.9图进行划线,(注意:左和上划就可以,右边和下边不要划),直接鼠标左键划黑线,不要摁着ctrl划红线(因为这个               错误耽搁好久)。



           创建完成在进行画线的时候勾选下面的show bad patches时候会有红线,需要将红线完全去掉,不然在打包的时候会报错

         4,保存并删除mipmap里面的图片,在xml里面使用。

     三、.9图片造成的错误修改

    报的错误是:Error:Java.lang.RuntimeException: Some file crunching failed, see logs for details ?

          出现这个错误的原因是一般有以下几种情况:

      一、构建Gradle的时候,Gradle会去检查一下是否修改过文件的后缀名。一般大多数是出现在图片上,.jpg修改成了.png就会出现这个问题;

      如果是这个问题导致的,可以在build.gradle文件里添加以下代码,然后点击右上角的sync now同步一下即可。

    这个的意思是关掉AndroidStudio对PNG图片的合法性检验。

    aaptOptions {

           cruncherEnabled = false

         useNewCruncher = false

    }


      二、点9(.9)图片有问题也可能出现这个问题,原因是AndroidStudio对图片的审核非常严格,在ECLIPSE上没有问题, 到了AS上就通过不了。所以此问题多见于Eclipse项目导入AndroidStudio时。我出现这个问题就是因为.9图片导致的,并且我也是自己摸索出来的如何修改,网上好多说的不明不白的…………唉。

      另外有一点要注意一下,点9图片必须放在drawable文件夹下,不能放在mipmap文件夹下。

      如果是因为.9图片导致的,构建工程时在错误日志里可能会有相关的提示,告诉你可能出问题的.9图片的位置,此时你只要双击提示的文本,即可自动打开有问题的.9图片。在AndroidStudio中可以直接编辑点9图片,此是其强大的一个缩影而已。大概错误如下截图:

      还有一种关于.9图片的错误,就是

      Error:java.lang.RuntimeException: Crunching Cruncher bg_titlebar_shadow.9.png failed, see logs

      这个错误也是需要用到下文中的方法从新编辑修改下点9图片即可解决。(重新编辑)


  • 相关阅读:
    JavaScript语法
    javascript的用法
    格式和布局
    Css样式表
    HTML基本语言(表单的基本元素)
    HTML超文本语言(一般标签)
    C#项目打开/保存文件夹/指定类型文件,获取路径
    在DataGridView控件中加入ComboBox下拉列表框的实现
    DataGridView 中添加CheckBox和常用处理方式 .
    数据库建模模板、菜单显示出问题解决方案
  • 原文地址:https://www.cnblogs.com/vegetate/p/9997215.html
Copyright © 2011-2022 走看看