android图片转换代码
package com.sl.test.ui.manage;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.view.View;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;
import com.baidu.mapapi.GeoPoint;
import com.sl.quwei.R;
import df.util.type.StringUtil;
import org.xbill.DNS.utils.base64;
import java.io.ByteArrayOutputStream;
/**
* Created by IntelliJ IDEA.
* User: wulong
* Date: 11-10-27
* Time: 上午6:31
* To change this template use File | Settings | File Templates.
*/
public class AggTools {
/**
* @param val
* @return
*/
public final static double latLangFromIntToDouble(int val) {
return (double) (val / 1E6);
}
public final static int latLangFromDoubleToInt(double val) {
return (int) (val * 1E6);
}
public static boolean setTabBackgroundColor(Context context, TabHost tabhost, int focusColor, int releaseColor) {
final TabWidget tabwidget = tabhost.getTabWidget();
for (int i = 0; i < tabwidget.getChildCount(); i++) {
View v = tabwidget.getChildAt(i);
if (tabhost.getCurrentTab() == i) {
v.setBackgroundColor(context.getResources().getColor(R.color.color_tab_light_orange));//R.color.color_tab_light_orange);
//更改tab标题颜色
final TextView tv = (TextView) tabwidget.getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(context.getResources().getColorStateList(android.R.color.darker_gray));
} else {
v.setBackgroundColor(context.getResources().getColor(R.color.color_tab_brown));//0xffE59500);//R.color.color_tab_brown);
//更改tab标题颜色
final TextView tv = (TextView) tabwidget.getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(context.getResources().getColorStateList(android.R.color.white));
}
}
return true;
}
public static String getNewTitle(CharSequence oldTitle, String loginName) {
String title = "" + oldTitle;
String showTitle;
if (title.contains(loginName)) {
showTitle = title;
} else {
showTitle = title + ":" + loginName;
}
return showTitle;
}
public static Bitmap drawableToBitmap(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;
}
/**
* 字符串转bitmap
* @param in
* @return
*/
public static Bitmap convertAvatarFromStringToBitmap(String in) {
if (StringUtil.empty(in)) {
return null;
}
byte[] byteBuf = base64.fromString(in);
if (null == byteBuf) {
return null;
}
Bitmap bitImg = bytes2Bimap(byteBuf);
return bitImg;
}
/**
* 将图片按指定质量转成字符串格式
* @param src
* @param quality
* @return
*/
public static String convertAvatarFromBitmapToString(Bitmap src, int quality) {
if (null == src) {
return "";
}
if (quality < 0) {
quality = 0;
} else if (quality > 100) {
quality = 100;
}
byte[] byteBuf = bitmap2Bytes(src, quality);
if (null == byteBuf) {
return "";
}
String hexBuf = base64.toString(byteBuf);
return hexBuf;
}
/**
* 图片按指定高度等比缩小
* @param map
* @param dstH
* @return
*/
public static Bitmap resizeBitmap(Bitmap map, int dstH) {
if (null == map) {
return null;
}
int width = map.getWidth();
int height = map.getHeight();
int dstHeight = dstH;
int dstWidth = (map.getWidth() / (map.getHeight() / dstHeight));
float scaleWid = ((float) dstWidth) / width;
float scaleHeight = ((float) dstHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWid, scaleHeight);
Bitmap resizeMap = Bitmap.createBitmap(map, 0, 0, width, height, matrix, true);
return resizeMap;
}
public static byte[] bitmap2Bytes(Bitmap bm, int quality) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (quality < 0) {
quality = 0;
} else if (quality > 100) {
quality = 100;
}
bm.compress(Bitmap.CompressFormat.PNG, quality, baos);
return baos.toByteArray();
}
public static Bitmap bytes2Bimap(final byte[] b) {
if (b.length != 0) {
return BitmapFactory.decodeByteArray(b, 0, b.length);
} else {
return null;
}
}
public static float getDistance(GeoPoint src, GeoPoint dest) {
int lat1 = src.getLatitudeE6();
int lng1 = src.getLongitudeE6();
int lat2 = dest.getLatitudeE6();
int lng2 = dest.getLongitudeE6();
float[] results = new float[3];
Location.distanceBetween(AggTools.latLangFromIntToDouble(lat1),
AggTools.latLangFromIntToDouble(lng1),
AggTools.latLangFromIntToDouble(lat2),
AggTools.latLangFromIntToDouble(lng2),
results);
return results[0];
}
}