相关文章推荐
豪爽的肉夹馍  ·  Android ...·  昨天    · 
近视的砖头  ·  【愚公系列】2024年01月 ...·  20 小时前    · 
踢足球的奔马  ·  如何解决 c# ...·  20 小时前    · 
朝气蓬勃的饼干  ·  Flask ...·  3 月前    · 
瘦瘦的野马  ·  message ...·  1 年前    · 
正直的镜子  ·  关于 Linux ...·  1 年前    · 

这篇文章是记录我们平时在android开发过程中,经常会用到的类型转换,主要包括String、byte[]、bitmap、inputstram、Drawable之间的转换,代码如下:

<span style="font-size:18px;">import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
public class Demo {
	 * bitmap 转  byte[]数组
	public byte[] bitmap2byteArray(Bitmap bitmap){
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
		byte[] bytes = baos.toByteArray();
		return bytes;
	 * bitmap 转  inputstream
	public InputStream bitmap2InputStream(Bitmap bitmap){
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
		InputStream is = new ByteArrayInputStream(baos.toByteArray());
		return is;
	 * byte[]数组   转   bitmap
	public Bitmap byteArray2Bitmap(byte[] bytes){
		Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
		return bitmap;
	 * inputstream  转   bitmap 
	public Bitmap inputStream2Bitmap(InputStream is){
		Bitmap bitmap = BitmapFactory.decodeStream(is);
		return bitmap;
	 * Drawable 转  bitmap
	public Bitmap drawable2Bitmap(Drawable img){
		BitmapDrawable bd = (BitmapDrawable) img;
		Bitmap bitmap = bd.getBitmap();
		return bitmap;
	 * bitmap 转  Drawable
	public Drawable bitmap2Drawable(Bitmap bitmap){
		BitmapDrawable bd = new BitmapDrawable(bitmap);
		Drawable img = bd;
		return img;
	 * String 转  byte[]数组
	public byte[] string2ByteArray(String str,String charset){
		byte[] bytes = null;
		if(charset == null){
			bytes = str.getBytes();
		}else{
			try {
				//如charset = "utf-8"
				bytes = str.getBytes(charset);
			} catch (Exception e) {
				// TODO: handle exception
		return bytes;
	 * String 转  inputstream
	public InputStream string2InputStream(String str){
		InputStream is = new ByteArrayInputStream(str.getBytes());
		return is;
	 * inputstream 转  String  方法01
	public String inputStream2String01(InputStream is) throws IOException{
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		int i = -1;
		while((i=is.read()) != -1){
			baos.write(i);
		return baos.toString();
	 * inputstream 转  String   方法02
	public String inputStream2String02(InputStream is) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(is));
		StringBuilder sb = new StringBuilder();
		String line = null;
		while((line=br.readLine()) != null){
			sb.append(line+"\n");
		return sb.toString();
	 * inputstream 转  String   方法03
	public String inputSteam2String03(InputStream is) throws IOException{
		StringBuilder sb = new StringBuilder();
		byte[] b =new byte[1024];
		for(int n; (n=is.read(b)) != -1;){
			String s = new String(b, 0, n);
			sb.append(s);
		return sb.toString();
}</span>
这篇文章是记录我们平时在android开发过程中,经常会用到的类型转换,主要包括String、byte[]、bitmap、inputstram、Drawable之间的转换,代码如下:import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStrea Kotlin被Google官方认为是 Android 开发的一级编程语言。今天,我将主要讲解,关于Kotlin的一些实用语法糖,主要包括: 范围使用:in、downTo、step、until 类型检查 & 换:is、智能 换、as 相等性:equals()、== 、 === 1. 范围使用 主要用于表示范围,主要包括:in、downTo、step、until * 1. in * 作用:在...范围内 // 表示:若i在1-5范围内,则执行下面代码 // 注:闭区间,[1,5] if (i in 1..5) { pr int ln("i 在 1-5 2. java向native传递数组类型 3. java向native传递自定义java对象 4. java向native传递任意java对象(以向native传递ArrayList为例) 5. native向java传递数组类型 6. native向java传递字符串类型 7. native向java传递java对象
1、HttpUtils Http网络工具类,主要包括httpGet、httpPost以及http参数相关方法,以httpGet为例: static HttpResponse httpGet(HttpRequest request) static HttpResponse httpGet(java.lang. String httpUrl) static String httpGet String ( String httpUrl) 包含以上三个方法,默认使用gzip压缩,使用bufferedReader提高读取速度。 HttpRequest中可以设置url、timeout、userAgent等其他http参数 HttpResponse中可以获取返回内容、http响应码、http过期时间(Cache-Control的max-age和expires)等 前两个方法可以进行高级参数设置及丰富内容返回,第三个方法可以简单的传入url获取返回内容,httpPost类似。更详细的设置可以直接使用HttpURLConnection或apache的HttpClient。 源码可见HttpUtils.java,更多方法及更详细参数介绍可见HttpUtils Api Guide。 2、DownloadManagerPro Android 系统下载管理DownloadManager增强方法,可用于包括获取下载相关信息,如: getStatusById(long) 得到下载状态 getDownloadBytes(long) 得到下载进度信息 getBytesAndStatus(long) 得到下载进度信息和状态 getFileName(long) 得到下载文件路径 getUri(long) 得到下载uri getReason(long) 得到下载失败或暂停原因 getPausedReason(long) 得到下载暂停原因 getErrorCode(long) 得到下载错误码 源码可见DownloadManagerPro.java,更多方法及更详细参数介绍可见DownloadManagerPro Api Guide。关于 Android DownManager使用可见DownManager Demo。 3、ShellUtils Android Shell工具类,可用于检查系统root权限,并在shell或root用户下执行shell命令。如: checkRootPermission() 检查root权限 execCommand( String [] commands, boolean isRoot, boolean isNeedResultMsg) shell环境执行命令,第二个参数表示是否root权限执行 execCommand( String command, boolean isRoot) shell环境执行命令 源码可见ShellUtils.java,更多方法及更详细参数介绍可见ShellUtils Api Guide。关于静默安装可见apk-root权限静默安装。 4、PackageUtils Android 包相关工具类,可用于(root)安装应用、(root)卸载应用、判断是否系统应用等,如: install(Context, String ) 安装应用,如果是系统应用或已经root,则静默安装,否则一般安装 uninstall(Context, String ) 卸载应用,如果是系统应用或已经root,则静默卸载,否则一般卸载 isSystemApplication(Context, String ) 判断应用是否为系统应用 源码可见PackageUtils.java,更多方法及更详细参数介绍可见ShellUtils Api Guide。关于静默安装可见apk-root权限静默安装。 5、PreferencesUtils Android SharedPreferences相关工具类,可用于方便的向SharedPreferences中读取和写入相关类型数据,如: put String (Context, String , String ) 保存 string 类型数据 put Int (Context, String , int ) 保存 int 类型数据 get String (Context, String ) 获取 string 类型数据 get Int (Context, String ) 获取 int 类型数据 可通过修改PREFERENCE_NAME变量修改preference name 源码可见PreferencesUtils.java,更多方法及更详细参数介绍可见PreferencesUtils Api Guide。 6、JSONUtils JSONUtils工具类,可用于方便的向Json中读取和写入相关类型数据,如: String get String (JSONObject jsonObject, String key, String defaultValue) 得到 string 类型value String get String ( String jsonData, String key, String defaultValue) 得到 string 类型value 表示从json中读取某个 String 类型key的值 getMap(JSONObject jsonObject, String key) 得到map getMap( String jsonData, String key) 得到map 表示从json中读取某个Map类型key的值 源码可见JSONUtils.java,更多方法及更详细参数介绍可见JSONUtils Api Guide。 7、FileUtils 文件工具类,可用于读写文件及对文件进行操作。如: readFile( String filePath) 读文件 writeFile( String filePath, String content, boolean append) 写文件 getFileSize( String path) 得到文件大小 deleteFile( String path) 删除文件 源码可见FileUtils.java,更多方法及更详细参数介绍可见FileUtils Api Guide。 8、ResourceUtils Android Resource工具类,可用于从 android 资源目录的raw和assets目录读取内容,如: geFileFromAssets(Context context, String fileName) 得到assets目录下某个文件内容 geFileFromRaw(Context context, int resId) 得到raw目录下某个文件内容 源码可见ResourceUtils.java,更多方法及更详细参数介绍可见ResourceUtils Api Guide。 9、 String Utils String 工具类,可用于常见字符串操作,如: isEmpty( String str) 判断字符串是否为空或长度为0 isBlank( String str) 判断字符串是否为空或长度为0 或由空格组成 utf8Encode( String str) 以utf-8格式编码 capitalizeFirstLetter( String str) 首字母大写 源码可见 String Utils.java,更多方法及更详细参数介绍可见 String Utils Api Guide。 10、ParcelUtils Android Parcel工具类,可用于从parcel读取或写入特殊类型数据,如: readBoolean(Parcel in) 从pacel中读取boolean类型数据 readHashMap(Parcel in, ClassLoader loader) 从pacel中读取map类型数据 writeBoolean(boolean b, Parcel out) 向parcel中写入boolean类型数据 writeHashMap(Map map, Parcel out, int flags) 向parcel中写入map类型数据 源码可见ParcelUtils.java,更多方法及更详细参数介绍可见ParcelUtils Api Guide。 11、RandomUtils 随机数工具类,可用于获取固定大小固定字符内的随机数,如: getRandom(char[] sourceChar, int length) 生成随机字符串,所有字符均在某个字符串内 getRandomNumbers( int length) 生成随机数字 源码可见RandomUtils.java,更多方法及更详细参数介绍可见RandomUtils Api Guide。 12、ArrayUtils 数组工具类,可用于数组 常用 操作,如: isEmpty(V[] sourceArray) 判断数组是否为空或长度为0 getLast(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到数组中某个元素前一个元素,isCircle表示是否循环 getNext(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到数组中某个元素下一个元素,isCircle表示是否循环 源码可见ArrayUtils.java,更多方法及更详细参数介绍可见ArrayUtils Api Guide。 13、ImageUtils 图片工具类,可用于 Bitmap , byte array, Drawable 之间进行 换以及图片缩放,目前功能薄弱,后面会进行增强。如: bitmap To Drawable ( Bitmap b) bimap 换为 drawable drawable To Bitmap ( Drawable d) drawable 换为 bitmap drawable ToByte( Drawable d) drawable 换为byte scaleImage( Bitmap org, float scaleWidth, float scaleHeight) 缩放图片 源码可见ImageUtils.java,更多方法及更详细参数介绍可见ImageUtils Api Guide。 14、ListUtils List工具类,可用于List 常用 操作,如: isEmpty(List sourceList) 判断List是否为空或长度为0 join(List list, String separator) List 换为字符串,并以固定分隔符分割 addDistinctEntry(List sourceList, V entry) 向list中添加不重复元素 源码可见ListUtils.java,更多方法及更详细参数介绍可见ListUtils Api Guide。 15、MapUtils Map工具类,可用于Map 常用 操作,如: isEmpty(Map sourceMap) 判断map是否为空或长度为0 parseKeyAndValueToMap( String source, String keyAndValueSeparator, String keyAndValuePairSeparator, boolean ignoreSpace) 字符串解析为map toJson(Map map) map 换为json格式 源码可见MapUtils.java,更多方法及更详细参数介绍可见MapUtils Api Guide。 16、ObjectUtils Object工具类,可用于Object 常用 操作,如: isEquals(Object actual, Object expected) 比较两个对象是否相等 compare(V v1, V v2) 比较两个对象大小 transform Int Array( int [] source) Int eger 数组 换为 int 数组 源码可见ObjectUtils.java,更多方法及更详细参数介绍可见ObjectUtils Api Guide。 17、SerializeUtils 序列化工具类,可用于序列化对象到文件或从文件反序列化对象,如: deserialization( String filePath) 从文件反序列化对象 serialization( String filePath, Object obj) 序列化对象到文件 源码可见SerializeUtils.java,更多方法及更详细参数介绍可见SerializeUtils Api Guide。 18、SystemUtils 系统信息工具类,可用于得到线程池合适的大小,目前功能薄弱,后面会进行增强。如: getDefaultThreadPoolSize() 得到跟系统配置相符的线程池大小 源码可见SystemUtils.java,更多方法及更详细参数介绍可见SystemUtils Api Guide。 19、TimeUtils 时间工具类,可用于时间相关操作,如: getCurrentTimeInLong() 得到当前时间 getTime(long timeInMillis, SimpleDateFormat dateFormat) 将long 换为固定格式时间字符串 源码可见TimeUtils.java,更多方法及更详细参数介绍可见TimeUtils Api Guide。
R. drawable .xx 是特殊的 int 型,存入数据库需要处理 int bgid=this.getResources().getIdentifier("date", " drawable ", getPackageName());if(R.drawabke.date==bgid){setbackground(bg.id);}是不是很简单,可以存入数据库! 载于:htt...
Matrix 换就行了。然后需要将彩色图 化为灰度图,我的个天啊,这玩意以前用opencl做过简单的一匹,现在我打算用代码实现,所以翻了很多博客,这里做一个记录,以后好复制。 色彩图 化为灰度图方法有三 加权法 GRAY==0.3*R+0.59*G+0.11*B 均值法GRAY==(R+G+B)/3 最大值法 max(R,G,B) var colorToGrayscale: ( Bitmap ) -> ...
获取本地图片 Bitmap decodeResource = Bitmap Factory.decodeResource(context.getResources(), R. drawable .ic_default_user_bg_34); 把本地的 int 类型的图片 换成 drawable Drawable drawable = context.getResources().getDr
import java.io.File; import java.io.File InputStream ; import java.io.FileNotFoundException; import java.io.IOException; import java.io.In