Android中9-Patch图片之理解】的更多相关文章

android中可以把图片进行处理,如果图片被拉伸的话,允许让图片部分区域不拉伸,部分区域拉伸.这个功能非常好,比如聊天的气泡,如果整个气泡被拉伸的话,会非常的丑. 老版的sdk中提供的有draw9patch.bat文件,允许对图片进行该项处理,不过新版的已经没有这个文件了,而是被集成到了Android Studio工具中. 首先先把图片放到项目中,注意只支持png格式的图片,右键这个图片,Create 9-Patch file 打开一个生成好的9-Patch图片,就可以进行处理了,鼠标右键按住…
图片加载涉及到图片的缓存.图片的处理.图片的显示等.而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题.很多软件厂家的通用做法就是借用第三方的框架进行图片加载. 开源框架的源码还是挺复杂的,但使用较为简单.大部分框架其实都差不多,配置稍微麻烦点,但是使用时一般只需要一行,显示方法一般会提供多个重载方法,支持不同需要.这样会减少很不必要的麻烦.同时,第三方框架的使用较为方便,这大大的减少了工作量.提高了开发效率.本文主要介绍四种常用的图片加载框架,…
前段时间有幸接到腾讯上海分公司的 Android开发面试,虽然最后一轮被毙了.但还是得总结一下自己在android开发中的一些盲点,最让我尴尬的是面试官问我几个android中线程池的使用与理解..哎..平时就知道new 线程要么用Asynctask,再者就是从github上下载大神写的一些开源库,虽然里面涉及到了线程池,但自己最多就是改改里面的最大线程数,没有仔细研究里面对线程池的使用..结果被腾讯鄙视了一回.....好了牢骚发完了..我来分享一下我对这块知识点的理解. 先给大家给两个连接 h…
原文网址:http://www.cnblogs.com/onlylittlegod/archive/2011/05/15/2046652.html 最近学习了一下Android里面的Service的应用,在BindService部分小卡了一下,主要是开始没有彻底理解为什么要这么实现. BindService和Started Service都是Service,有什么地方不一样呢: 1. Started Service中使用StartService()方法来进行方法的调用,调用者和服务之间没有联系,…
一.重要參考资料  [參考资料]     眼下来看,以下的几个网址中的内容质量比較不错.基本不须要再读别的网址了. 1.android消息机制一     http://xtfncel.javaeye.com/blog/663517   Android消息机制(一)  一.    角色描写叙述  1.Looper: 一个线程能够产生一个Looper对象.由它来管理此线程里的Message Queue(消息队列).  2.Handler: 你能够构造Handler对象来与Looper沟通.以便pus…
在开发中常常会有一些需求,比方显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其它的一些形状. 可是往往我们手上的图片或者从server获取到的图片都是方形的.这时候就须要我们自己进行处理,将图片处理成所须要的形状.正如茴香豆的的"茴"写法大于一种.经过我的研究.画出特殊图片的方法也不是一种,我发现了三种.且听我一一道来. 使用Xfermode 两图相交方式 通过查找资料发现android中能够设置画笔的Xfermode即相交模式,从而设置两张图相交之后的显示方式.详细模式见…
一 Adapter模式 意图: 将一个类的接口转换成客户希望的另外一个接口. Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作. 适用性: 使用一个已存在的类,而它的接口不符合你的要求: 你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口,而是使用对象适配器适配他们的父类接口: 你想创建一个可以复用的类,该类可以与其他不相关的类或者不可预见的类(接口可能不一定兼容的类)协同工作: 看看其结构图: 这是一个对象适配器结构图: 其实类似这样的类结…
Android中的消息机制主要由Handler.MessageQueue.Looper三个类组成,他们的主要作用是 Handler负责发送.处理Message MessageQueue负责维护Message队列 Looper负责Message的轮询 Android的消息机制主要是为了在子线程中处理的数据可以在主线程更新UI,完成从子线程到主线程的切换. 而Android的单线程UI模型,则是为了简化UI操作,防止在多线程情况下同时更新UI造成的同步操作和效率问题. 与这种消息机制相关的类还有Ha…
注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 在做Android开发时,我们常常需要为程序设定一个背景,但由于现在的Android设备尺寸不一,如果随便设置一个图片为背景,那么很可能在不同的设备上会被拉伸,给用户的视觉体验会很差,那么如何解决这个问题呢,这里本菜鸟在此分享一下心得. 一.首先,需要在drawable-mdpi目录里定义一个xml文件,在此我命名为bitmap 编写如下代码,src中指定为你要平铺图片的名称: <?xml version="1.0&quo…
http://blog.csdn.net/l448288137/article/details/48276681 最近项目开发中使用到了圆角图片,网上找到的圆角图片控件大多比较死板,只可以全圆角.其中感觉最好的也就是半圆角 链接在这里.想了一下,我自己在这个的基础上进行了一点改进,使得图片可以设置任意角为圆角. 先上效果图: 核心代码 package fillet.sgn.com.filletimage; import android.graphics.Bitmap; import androi…
1. 有这样的一个应用场景:有一个linearLayout控件在其中布局一个textView控件 首先,创建线性布局对象 LinearLayout layout = new LinearLayout(this);//为本Activity创建一个线性布局对象 //并且设置它的属性 android:layout_width 与 android:layout_height 都为 FILL_PARENT//布局方面的属性设置方式 LinearLayout.LayoutParams layoutParam…
以前一直使用序列图片来实现动画效果,造成空间的极大浪费,所以想要尝试下切割图片来实现动画. 如图所示,是由66rpg纸娃娃系统生成的角色行走图.本程序必须实现将人物的整体图片切割后存入4x4的数组来动态加载. 在主布局文件中设立4个ImageView,分别用来显示角色在不同角度下的行走动作.然后在主活动文件中: public class MainActivity extends ActionBarActivity {private ImageView myImageView,myImageVie…
AIDL的使用: 最常见的aidl的使用就是Service的跨进程通信了,那么我们就写一个Activity和Service的跨进程通信吧. 首先,我们就在AS里面新建一个aidl文件(ps:现在AS建aidl不要求和Java包名相同了): package aidl; interface IMyInterface { String getInfor(String s); } 可以看到,在这里面我们就一个方法getInfor(String s),接受一个字符串参数,然后返回一个字符串,相当的简单.…
导语: 如今的安卓应用在选择图片的处理上大多合并使用拍照和从相册中选择这两种方式 今天在写一个这样的功能时遇到一个尴尬的问题,同样是拍照获取图片功能,在不同手机上运行的效果不一样,下面是在某型手机上测试的报错结果 错误报告: 10-21 17:41:43.634: E/AndroidRuntime(32683): FATAL EXCEPTION: main 10-21 17:41:43.634: E/AndroidRuntime(32683): java.lang.RuntimeExceptio…
这里有两种解释的方法,各有侧重点: 第一种解释: Async Task 简介:AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦  AsyncTask是抽象类.AsyncTask定义了三种泛型类型 Params,Progress和Result. Params 启动任务执行的输入参数,比如HTTP请求的URL. Progress 后台任务执行的百分比. Result 后台执行任务最终返回的结果,比如String. AsyncTa…
一.跨应用启动Service Intent serviceIntent=new Intent();serviceIntent.setComponent(new ComponentName("com.example.shiyanshi.startservicefromanotherapp","com.example.shiyanshi.startservicefromanotherapp.AppService")); 跨应用启动Service时,Android5.0以…
1.BitmapFactory.Options中的属性 在进行图片压缩时,是通过设置BitmapFactory.Options的一些值来改变图片的属性的,下面我们来看看BitmapFactory.Options中常用的属性意思: options.inPreferredConfig - 设置Bitmap的偏好配置,值有Bitmap.Config.ARGB_8888,Bitmap.Config.ARGB_4444,Bitmap.Config.ARGB_8888,Bitmap.Config.RGB_5…
很纠结的一个标题,实在是不知道怎么去描述这个现象. 上图片吧,先看看需求是什么样的. 1.需求: ​ 视频与票的图标跟在标题后面显示,当标题过长时icon显示到省略号…后(textview省略号显示,图标自动靠后). 2. 问题解决 ​ 本来是一个很正常的需求,看起来很简单,但是做起来却遇到了很蛋疼的问题,怎么搞的都不行,堵了很长时间,下面说一下解决方案,遇到这样问题的朋友可以使用. TextView可以通过 android:ellipsize="end" android:single…
public class HelloGoodbye{ try{ System.out.println(“Hello World”); System.exit(0); } finally { System.out.println(“Goodbye World”); }} 上面这段代码会打印出什么呢?要知道答案需要了解System.exit(0)这个方法在执行过程中到底发生了哪些事情.API文档上描述System.exit方法会导致当前运行线程停止并使其它线程都终止,因此上面这段代码中的finall…
/** 保存方法 */  public void saveBitmap() {   Log.e(TAG, "保存图片");   File f = new File("/sdcard/namecard/", picName);   if (f.exists()) {    f.delete();   }   try {    FileOutputStream out = new FileOutputStream(f);    bm.compress(Bitmap.Co…
protected   int  mScrollX;    //该视图内容相当于视图起始坐标的偏移量   , X轴 方向 protected   int  mScrollY;    //该视图内容相当于视图起始坐标的偏移量   , Y轴方向 偏移量表示的就是相对位置,而不是针对起始点的绝对位置. 就像在路上的一个点,它距起始点的距离就是绝对长度:而距中途某个点的距离就是相对于中途这个点的偏移量. 简单点来比喻: 你要从北京去广州,过了郑州100公里 郑州就是基地址,100是偏移! public…
在网上看了不少文章,发现还是官方文档介绍最详细,把重要的东西简单摘要出来.详细可看官方文档地址 ( http://www.bangchui.org/read.php?tid=9 ) . 在应用中显示图片,如果不多加小心,很容易就会使应用因为异常“java.lang.OutofMemoryError:bitmap size exceeds VM budget”而导致crash.在android中加载图片需要一定的技巧性,主要是因为: 1.通常设备资源有限,安卓设备给每个应用只分配16M的空间.当然…
我们不能每次加载图片的时候都让用户从网络上下载,这样不仅浪费流量又会影响用户体验,所以Android中引入了图片的缓存这一操作机制. 原理: 首先根据图片的网络地址在网络上下载图片,将图片先缓存到内存缓存中,缓存到强引用中 也就是LruCache中.如果强引用中空间不足,就会将较早存储的图片对象驱逐到软引用(softReference)中存储,然后将图片缓存到文件(内部存储外部存储)中:读取图片的时候,先读取内存缓存,判断强引用中是否存在图片,如果强引用中存在,则直接读取,如果强引用中不存在,则…
Android 中对于图片的内存优化方法,需要的朋友可以参考一下     1. 对图片本身进行操作 尽量不要使用 setImageBitmap.setImageResource. BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 decode 后,最终都是通过 Java 层的 createBitmap 来完成的,需要消耗更多内存.因此,改用先通过 BitmapFactory.decodeStream 方法,创建出一个 bitmap,再将其设为 Imag…
在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,他对图片的处理分为四个基本类型: 1.Translate————平移变换 2.Scale————缩放变换 3.Rotate————旋转变换 4.Skew————错切变换 在Android的API里对于每一种变换都提供了三种操作方式:set(用于设置Matrix中的值).post(后乘,根据矩阵的原理,相当于左乘).pre(先乘,相当于矩阵中的右乘).默认时,这四种变换都是围绕(0,0)点变换的,当然可以…
这个例子只是简单的实现了单机版的聊天功能,自己跟自己聊,啦啦~~ 主要还是展示RecyclerView控件的使用吧~ 参考我之前写的文章: android中RecyclerView控件的使用 android中使用Nine-Patch图片 1.先添加一个关于聊天内容的Chat.java类: package com.example.chenrui.common; public class Chat { private String targetUser; private String content…
android中ImageView的ScaleType属性 ScaleType的值分别代表的意义: ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleType,该属性用以表示显示图片的方式,共有8种取值 ScaleType.CENTER::图片大小为原始大小,如果图片大小大于ImageView控件,则截取图片中间部分,若小于,则直接将图片居中显示. ScaleType.CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即…
在Android中处理大图片不是一件很随意的事情,因为通常我们使用的是内置的BitmapFactory解码图片的,而BitmapFactory往往会因为图片过大而遇到OutOfMemoryError的异常.要想正常使用,一种简便的方式是分配更少的内存空间来存储,即在载入图片的时候以牺牲图片质量为代价,将图片进行放缩,这是一种避免OOM所采用的解决方法. 在BitmapFactory中有一个内部类BitmapFactory.Options,其中值得我们研究的是inSampleSize和inJust…
前言 这段时间在看一些IPC相关的东西,这里面就不可避免的要涉及到service,进程线程这些知识点,而且在研究的过程中我惊觉自己对这些东西的记忆已经开始有些模糊了——这可要不得.于是我就干脆花了点心思温故了一下,就有了这篇博文. 非常感谢Google的官方文档——尤其是其中部分文章有中文版了之后. 正文 1,什么是service? Service是一个可以在后台执行长时间操作而不使用用户界面的应用组件.那么问题来了,既然它不使用用户界面,那么它怎么知道应该什么时候开始执行什么操作呢?答案是——…
在android中,不仅可以将扩展名为.png,.jpg,.gif的普通图片作为图片资源,而且可以将扩展名为.9.png的9-Patch图片作为图片资源.扩展名为.png,.jpg,.gif的普通图片较为常见,他们通常是通过绘图软件完成的.而9-Patch图片是通过使用Android SDK中的提供的工具Draw 9-patch生成的.那为什么要使用9-Patch这种图片呢?原因是:与普通图片不同,使用9-Patch图片作为屏幕或按钮的背景时,当屏幕的尺寸或按钮的大小改变时,图片可自动缩放,达到…