精华内容
下载资源
问答
  • Android png图片命名规范

    千次阅读 2017-03-28 11:04:46
    才知道,原来Android png命名准备的规范是这样: 小写字母,数字,下划线组成;必须是字母开头,而且每个下划线后面第一个字符必须是字母。 正确命名: sider_menu_btn_1; sider_menu_btn1;  错误命名: sider_menu...

    才知道,原来Android  png命名准备的规范是这样:

    小写字母,数字,下划线组成;必须是字母开头,而且每个下划线后面第一个字符必须是字母;  字母数字不能混搭(如side2btn)

    正确命名:   sider_menu_btn_1;     sider_menu_btn1;    sider1_menu_btn

    错误命名:   sider_menu_1btn;     sider_menu_b1tn;    sider_menu-btn;     Sider_menu_btn

    展开全文
  • Android png图片透明度的问题

    千次阅读 2016-12-29 11:52:03
    关于alpha通道的问题 想看这篇文章 ... 素材图片 Drawable转换为Bitmap实现 public static Bitmap convertDrawable2BitmapByCanvas(Drawable drawable) { Bitmap bit

    关于alpha通道的问题  想看这篇文章 http://blog.csdn.net/id19870510/article/details/53925746

    素材图片



    Drawable转换为Bitmap实现

    	public static Bitmap convertDrawable2BitmapByCanvas(Drawable drawable) {
    		Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), //
    				drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);
    		Canvas canvas = new Canvas(bitmap);
    		// canvas.setBitmap(bitmap);
    		drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
    		drawable.draw(canvas);
    		return bitmap;
    	}

    当BitmapFactory发觉图片资源带有alpha通道,它便只能将图片解码为32位的ARGB888位图。否则转换为16位不带alpha通道的RGB565

    可以用以下方法直接转换

    canvas.drawBitmap(((BitmapDrawable) (getResources().getDrawable(R.drawable.scan_line_24))).getBitmap(), null, lineRect, paint);

    如果素材图片有问题的话, 加载出来会直接不显示alpha通道,显示为白色

    这个时候让UI设计师妹子出了一个24位带alpha通道的图片 问题解决






    展开全文
  • Android使用apng图片

    千次阅读 2017-04-01 18:21:56
    一般来说动态图片使用gif...由于Android原生并不支持apng图片,可以使用第三方支持框架 https://github.com/aellerton/japng_android 使用方法也简单 播放apng Drawable d = PngAndroid.readDrawable(this, R.drawa

    一般来说动态图片使用gif,但是gif图片的缺点是有白边,因此apng格式动态图片是更好的选择

    由于Android原生并不支持apng图片,可以使用第三方支持框架 https://github.com/aellerton/japng_android


    使用方法也简单

    播放apng

    Drawable d = PngAndroid.readDrawable(this, R.drawable.rotating_logo);
    ImageView iv = (ImageView)findViewById(R.id.view_render_image);
    iv.setImageDrawable(drawable);
    if (drawable instanceof AnimationDrawable) {
        ((AnimationDrawable)drawable).start();
    }

    停止播放

    ((AnimationDrawable)drawable).stop();

    这是我使用的APNG工具类,导入japng框架后可以使用该工具类


    /**
     * Created by TonyYang on 2017/1/17.
     * APNG工具类
     * 支持同时播放多个apng
     */
    
    public class APNGUtil {
    
        private String TAG = "APNGUtil";
    
        private static APNGUtil instance;
        private Map<Integer, Drawable> drawableMap = new HashMap<>();
    
        public static APNGUtil getInstance() {
            if (instance == null) {
                instance = new APNGUtil();
            }
            return instance;
        }
    
        /**
         * 设置apng到imageview对象
         *
         * @param drawable
         * @param imageView
         */
        private void setDrawable(Drawable drawable, ImageView imageView) {
            imageView.setImageDrawable(drawable);
            if (drawable instanceof AnimationDrawable) {
                Log.i(TAG, "AnimationDrawable start");
                ((AnimationDrawable) drawable).start();
            } else {
                Log.i(TAG, "drawable no instanceof AnimationDrawable");
            }
            if (drawableMap.get(imageView.getId()) != null) {
                Log.i(TAG, "drawablemap already has drawable >>" + imageView.getId());
                drawableMap.get(imageView.getId()).setCallback(null);
                drawableMap.remove(imageView.getId());
            }
            drawableMap.put(imageView.getId(), drawable);
            Log.i(TAG, "add ! drawablemap size>>" + drawableMap.size());
        }
    
        /**
         * 播放apng图片
         *
         * @param context
         * @param path      apng图片路径
         * @param imageView 播放容器
         */
        public void start(Context context, String path, ImageView imageView) {
            try {
                if (path.contains("file://")) {
                    Log.i(TAG, "start by file path");
                    setDrawable(PngAndroid.readDrawable(context, new FileInputStream(new File(path))), imageView);
                } else {
                    Log.i(TAG, "start by assert path");
                    setDrawable(PngAndroid.readDrawable(context, context.getAssets().open(path)), imageView);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (PngException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 播放apng图片
         *
         * @param context
         * @param id        apng图片资源id
         * @param imageView 播放容器
         */
        public void start(Context context, int id, ImageView imageView) {
            try {
                Log.i(TAG, "start by res id");
                setDrawable(PngAndroid.readDrawable(context, FormatTools.getInstance().Drawable2InputStream(context.getResources().getDrawable(id))), imageView);
            } catch (PngException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 播放apng图片
         *
         * @param context
         * @param stream    apng图片数据流
         * @param imageView 播放容器
         */
        public void start(Context context, InputStream stream, ImageView imageView) {
            try {
                Log.i(TAG, "start by inputStream");
                setDrawable(PngAndroid.readDrawable(context, stream), imageView);
            } catch (PngException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 停止播放apng
         *
         * @param imageView 停止对象
         */
        public void stop(ImageView imageView) {
            if (drawableMap.get(imageView.getId()) != null) {
                if (drawableMap.get(imageView.getId()) instanceof AnimationDrawable) {
                    Log.i(TAG, "AnimationDrawable stop");
                    ((AnimationDrawable) drawableMap.get(imageView.getId())).stop();
                }
                drawableMap.get(imageView.getId()).setCallback(null);
                drawableMap.remove(imageView.getId());
                Log.i(TAG, "delete ! drawablemap size>>" + drawableMap.size());
            }
        }
    
        public void clear() {
            for (Map.Entry<Integer, Drawable> entry : drawableMap.entrySet())
                entry.getValue().setCallback(null);
            drawableMap.clear();
        }
    }

    
    

    由于框架作者并未提供Maven,Jcenter等仓库链接,需要自己将框架clone下来作为module导入到项目中使用。

    这里提供已经打包为aar的框架,将aar包放到libs文件夹,使用 compile(name: 'Japng', ext: 'aar') 导入框架

    下载地址

    展开全文
  • android 9PNG图片制作

    万次阅读 多人点赞 2012-07-09 20:16:44
    android开发的过程中我们经常因为没有好的美工图片失真,这样使界面看起来要...所以有时候我们想要是有些图片可以拉伸而不失真多好啊,这时候我们就要想起android为我们提供的9.png格式的图片了,9.png格式的图片是安

                  在android开发的过程中我们经常因为没有好的美工图片失真,这样使界面看起来要逊色很多,有的时候可能我们会想在drawable-hdpi,ldpi,mdpi下放不同分辨率的图片,这样虽然可以有效避免图片失真,但是这样一是麻烦而是图片资源似的整个项目太大。所以有时候我们想要是有些图片可以拉伸而不失真多好啊,这时候我们就要想起android为我们提供的9.png格式的图片了,9.png格式的图片是安卓平台上新创的一种被拉伸却不失真的玩意。

               学会了这种9PNG图片的制作,我们以后做项目的时候一些因为不同分辨率而失真的图片就可以使用这种方式了,下面看一下它的制作过程吧。

               9PNG制作的工具我们不需要下载,因为android的sdk中已经自带了这个工具了,在tools目录下找到draw9patch.bat,双击会出现如图:

        

                  然后把我们想要制作的图片,直接拖动到上面的工具里面,会出现类似如下图:



                      将鼠标放在白色边框,点住左键不放拖动,会出现黑色线条如图:


                  1号黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域 

              2号黑色条位置向下覆盖的区域表示图片横向拉伸时,只拉伸该区域

               3号黑色条位置向左覆盖的区域表示图片纵向显示内容的区域(在手机上主要是文字区域)

             4号黑色条位置向上覆盖的区域表示图片横向显示内容的区域(在手机上主要是文字区域)

                 没有黑色条的位置覆盖的区域是图片拉伸时保持不变(比如,如果图片的四角为弧形的时候,当图片被任意拉伸时,四角的弧形都不会发生改变)

                   右边3个红色图形区域为显示当前拉伸效果

             

                选择好区域后,点击左上file-》save 9-path,保存图片,后缀名为xxx.9.png这样就制作成功了,然后就可以把这张图片扔到drawable-hdpi相应的目录下了

    展开全文
  • APP需要动态从网络下载PNG图片,然后在BottomNavigationView菜单中显示出来 下载PNG图片后,显示发送背景一直是黑色的。。。 使用Glide显示PNG图片也是背景黑色 网上查了好久,没发现解决方法。。。。 实在...
  • 分解 assets 目录文件下的 PNG 图片成 各个小尺寸 PNG 图片 。 主函数执行: // 创建目录, 用来保存分解出来的图片 createPath("/sdcard/gui_blocks/"); createPath("/sdcard/gui_blocks_2/"); create...
  • android recovery png 图片的替换

    千次阅读 2015-10-23 16:55:29
    png 图片生成源码 development/tools/recovery_l10n/ 用imagemaic 工具convert 转换 convert test.png -colorspace gray test_ok.png
  • Android PNG渐变背景图片失真问题

    千次阅读 2013-04-01 21:37:54
    试了:先将图片转为索引模式,再转到RGB模式,光晕依然;将图片转到索引模式...PNG渐变背景图片失真问题" title="Android PNG渐变背景图片失真问题" style="border:0px; margin:0px; padding:0px; list-style-type:
  • android studio png图片问题

    千次阅读 2016-07-05 18:48:06
    http://blog.csdn.net/songyunbiao/article/details/51425187 感谢楼主分享
  • android 9.png图片详解

    2015-12-22 18:03:34
    一、何为.9.png ... 在Android中以9.PNG格式的图片未背景,则能够自定义拉伸而不失真,比如系统的Button就是一个典型的例子。 这种格式的图片android 环境下具有自适应调节大小的能力。  (1)允许开发
  • 前些日子在做项目的时候 当时由于先前项目间隔比较长...但是这时候就出现了问题,之前使用的没有问题的png图片突然编译的时候出现了 libpng error not a png file …….等一系列报错,导致项目编译失败,这让我很苦恼,
  • Android 制作.9.png图片之利用Android studio前言制作 前言 相关:Android 制作.9.png图片之利用Android 9-patch shadow generator 有时候UI给了切图,但是并不能直接使用,要转换成.9.png图才能使用。 举例:一个右...
  •  可能做过任务栏美化的同学都会知道,我靠,framework-res.apk\res\drawable-hdpi 目录下有非常非常多的XXXXXX.9.png图片。 千万不要以为这个9只是png格式图片的命名区分,其实他是一种特殊的格式,在png图片的...
  • Android png转xml

    千次阅读 2017-09-26 16:39:22
    本文将介绍如何把png图片转换成svg矢量图,然后再生成xml文件。 1.打开png图片 File->Open->你的png图片 选择默认配置 2.转换 选中你的图片,path->Trace Bitmap (Ctrl+Shift+B) 按照图中...
  • Android 设置PNG图片的打印分辨率dpi(pHYs) 1.了解png的原文件数据,头文件IHDR,控制物理密度的pHYs, 关于png的头文件IHDR: https://blog.csdn.net/satanzw/article/details/38757121 png图片都是以...
  • Android 9.png图片的制作方法

    万次阅读 2013-12-06 16:40:39
    Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”。 图片是用于Android开发的一种特殊的图片格式,它的好处在于可以用简单的...
  • android 9.png 图片制作

    2012-11-02 19:12:04
     可能做过任务栏美化的同学都会知道,我靠,framework-res.apk\res\drawable-hdpi 目录下有非常非常多的XXXXXX.9.png图片。 千万不要以为这个9只是png格式图片的命名区分,其实他是一种特殊的格式,在png图片的...
  • lNinePatch是一种很有用的PNG图片格式,它可以在特定区域随文字大小进行缩放。如下: 从上图可以看到,背景图片的中间区域会随着文字的大小进行缩放。背景图片是一张NinePatch图片。 NinePatch图片可以使用...
  • android 制作9.png图片

    2019-06-01 22:13:34
    .9.PNG是标准的PNG格式,只是在最外面一圈额外增加1px的边框,这个1px的边框就是用来定义图片中可扩展的和静态不变的区域。特别说明,left和top边框中交叉部分是可拉伸部分,未选中部分是静态区域部分。right和...
  • android中.9.png图片

    2015-09-05 13:10:34
    1、.9.png图片是什么? .9.PNG是安卓开发里面的一种特殊的图片,这种格式的图片通过ADT自带的编辑工具生成,使用九宫格切分的方法,使图片支持在android 环境下的自适应展示。 2、为什么要有.9.png图片? 这种格式的...
  • Android 清除png图片的白色背景

    千次阅读 2018-08-06 17:43:37
    /**清除背景颜色 * @param mBitmap * @param mColor 背景颜色值 eg:Color.WHITE * * @return */ private static Bitmap getAlphaBitmap(Bitmap mBitmap, int mColor) { Bitmap mAlphaBitmap = Bitmap.create...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,671
精华内容 3,068
关键字:

androidpng图片