`
dengbaoleng
  • 浏览: 1132611 次
文章分类
社区版块
存档分类
最新评论

Java和Android中一些常用的公共方法

 
阅读更多

/**
* 通过findStr在getStr的位置,查找相应位置上setStr的值
*
* @param getStr
* 所在位置
* @param setStr
* 查找位置
* @param findStr
* 查找条件
* @return 查找相应的值
*/
public static String findStr(CharSequence[] getStr, CharSequence[] setStr, String findStr) {
int len = getStr.length;
String str = null;
for (int i = 0; i < len; i++) {
if (getStr[i].equals(findStr)) {
str = setStr[i].toString();
}
}
return str;
}

/**
* 获取指定字符串在数组位置
*
* @param charSeq
* @param str
* @return
*/
public static int getIndex(CharSequence[] charSeq, String str) {
int index = 0;
for (int i = 0; i < charSeq.length; i++) {
if (charSeq[i].toString().equals(str)) {
index = i;
break;
}
}
return index;
}

/**
* 时间格式化
*
* @param time
* 秒数
* @return
*/
public static String timeFormat(int time) {
String retString = "";

int hour = (time / 3600);
int minute = ((time - hour * 3600) / 60);
int second = (time - hour * 3600 - minute * 60);

if (hour != 0) {
retString += String.valueOf(hour) + "小时";
}
if (minute != 0) {
retString += String.valueOf(minute) + "分钟";
}
if (second != 0) {
retString += String.valueOf(second) + "秒";
}

return retString;
}

/**
* 改变图片尺寸
*
* @param makeWidth
* @param makeHeight
* @param makeBit
* @return
*/
public static Bitmap makeImg(int makeWidth, int makeHeight, Bitmap makeBit) {
if (makeBit != null) {
float scaleWidth = ((float) makeWidth) / makeBit.getWidth();
float scaleHeight = ((float) makeHeight) / makeBit.getHeight();
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizedBitmap = Bitmap.createBitmap(makeBit, 0, 0, makeBit.getWidth(), makeBit.getHeight(), matrix, true);
return resizedBitmap;
} else {
return null;
}
}



/**
* 改变图片尺寸
*/
public static String createMacStr(String mac) {
return mac.replaceAll(":", "_");
}

/**
* 图片阴影渐变效果
*
* @param originalImage
* @return
*/
public static Bitmap createReflectedImage(Bitmap originalImage) {
final int reflectionGap = 0;
int width = originalImage.getWidth();
int height = originalImage.getHeight();

/** 倒影旋转的角度 **/
Matrix matrix = new Matrix();
matrix.preScale(1, -1);

/** 创建倒影图片 **/
Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height / 2, width, height / 2, matrix, false);

/** 设置新建的画布样式 **/
Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height / 6), Config.ARGB_8888);

/** 创建画布 **/
Canvas canvas = new Canvas(bitmapWithReflection);
canvas.drawBitmap(originalImage, 0, 0, null);
Paint defaultPaint = new Paint();
canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);

canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);

Paint paint = new Paint();
/** 画出倒影 **/
LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.MIRROR);
paint.setShader(shader);
/** 设置渐变 **/
paint.setXfermode(new PorterDuffXfermode(Mode.DST_ATOP));

canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint);

/** 将画在画布上的图返回 **/
return bitmapWithReflection;
}

/**
* 获取时间戳(字数串格式化yyyyMMddHHmmsssss)
*/
public static String getTimestampStr() {
SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyyMMddHHmmsssss");
Date date = new Date();
return bartDateFormat.format(date);
}

/**
* 获取当前日期(字数串格式化yyyy-MM-dd)
*/
public static String getNowDateStr() {
SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
return bartDateFormat.format(date);
}

/**
* 获取本地Jar包图片
*
* @return Bitmap类型
*/
public static Bitmap getLocalBitmap(URL localPath) {
Bitmap bitmap = null;
try {
URLConnection uConnection = localPath.openConnection();
uConnection.setDoInput(true);
uConnection.connect();
InputStream inStream = uConnection.getInputStream();
bitmap = BitmapFactory.decodeStream(inStream);
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}

/**
* 获取文本内容
*
* @param filePath
* @return
*/
public static String getTextFile(String filePath) {
String result = null;
try {
File file = new File(filePath);
BufferedReader bufRead = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
while ((result = bufRead.readLine()) != null) {
return result;
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}

/**
* 获得文件扩展名
*
* @param fileName
* @return
*/
public static String getFileExtention(String fileName) {
int length = fileName.length();
for (int i = length - 1; i >= 0; i--) {
if (fileName.charAt(i) == '.') {
return fileName.substring(i);
}
}
return fileName;
}

/**
* 截取","字符
*
* @param str
* @return
*/
public static List<String> getName(String str) {
List<String> list = new ArrayList<String>();
String[] cutArray = str.split(",");
int length = cutArray.length;
for (int i = 0; i < length; i++) {
list.add(cutArray[i]);
}
return list;
}

/**
* 读取本地内存图片
*
* @param getFileBitmap 本地图片路径
* @param fileName 本地图片名称
* @return
*/
public static Bitmap getFileBitmap(String filePath, String fileName) {
Bitmap bmp = BitmapFactory.decodeFile(filePath + fileName);
return bmp;
}

/**
* 删除文件夹
*
* @param folder
* @return
*/
public static boolean deleteFolder(File folder) {
boolean result = false;
try {
String childs[] = folder.list();
if (childs == null || childs.length <= 0) {
if (folder.delete()) {
result = true;
}
} else {
for (int i = 0; i < childs.length; i++) {
String childName = childs[i];
String childPath = folder.getPath() + File.separator + childName;
File filePath = new File(childPath);
if (filePath.exists() && filePath.isFile()) {
if (filePath.delete()) {
result = true;
} else {
result = false;
break;
}
} else if (filePath.exists() && filePath.isDirectory()) {
if (deleteFolder(filePath)) {
result = true;
} else {
result = false;
break;
}
}
}
folder.delete();
}
} catch (Exception e) {
result = false;
}
return result;
}

/**
* 复制文件
*
* @param sourceFile 源文件
* @param targetFile 目标文件
* @throws IOException
*/
public static void copyFile(File sourceFile, File targetFile) throws IOException {

/** 新建文件输入流并对它进行缓冲 **/
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff = new BufferedInputStream(input);

/** 新建文件输出流并对它进行缓冲 **/
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff = new BufferedOutputStream(output);

byte[] b = new byte[1024 * 5];
int len;
while ((len = inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
/** 刷新此缓冲的输出流 **/
outBuff.flush();

inBuff.close();
outBuff.close();
output.close();
input.close();
}

/**
* 复制文件夹
*
* @param sourceDir 源文件夹
* @param targetDir 目标文件夹
* @throws IOException
*/
public static void copyDirectiory(String sourceDir, String targetDir) throws IOException {
(new File(targetDir)).mkdirs();
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
/** 源文件 **/
File sourceFile = file[i];
/** 目标文件 **/
File targetFile = new File(new File(targetDir).getAbsolutePath() + File.separator + file[i].getName());
copyFile(sourceFile, targetFile);
}
if (file[i].isDirectory()) {
/** 源文件夹 **/
String dir1 = sourceDir + "/" + file[i].getName();
/** 源文件夹 **/
String dir2 = targetDir + "/" + file[i].getName();
copyDirectiory(dir1, dir2);
}
}
}

/**
* 删除文件夹下的指定文件
*
* @param folder 所在文件夹
* @param str 指定模糊的字符串
* @return
*/
public static boolean deleteAssignFolder(File folder, String str) {
boolean result = false;
try {
String childs[] = folder.list();
if (childs == null || childs.length <= 0) {
result = false;
} else {
for (int i = 0; i < childs.length; i++) {
String childName = childs[i];
String subStr = childName.substring(0, childName.indexOf("_"));
if (str.equals(subStr)) {
String childPath = folder.getPath() + File.separator + childName;
File filePath = new File(childPath);
if (filePath.exists() && filePath.isFile()) {
if (filePath.delete()) {
result = true;
} else {
result = false;
break;
}
} else if (filePath.exists() && filePath.isDirectory()) {
if (deleteAssignFolder(filePath, str)) {
result = true;
} else {
result = false;
break;
}
}
}
}
}
} catch (Exception e) {
result = false;
}
return result;
}

/**
* 创建文件同时初始化文件内容
*
* @param filename
* @param filecontent
* @return
*/
public static boolean createFileContent(String filename, String filecontent) {
try {
File f = new File(filename);
if (f.exists() && f.isFile())
f.delete();
FileOutputStream fos = new FileOutputStream(f, true);
fos.write(filecontent.getBytes());
fos.close();
return true;
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
}

/**
* 创建文件同时初始化文件内容
*/
public static String createDirectory(String filepath) {
File f = new File(filepath);
if (!f.exists())
f.mkdirs();
return filepath;
}

/**
* 截取扩展名'.'之前的文件名
*
* @param fileName
* @return
*/
public static String getFileName(String fileName) {
if ((fileName != null) && (fileName.length() > 0)) {
int i = fileName.lastIndexOf('.');
if ((i > -1) && (i < (fileName.length()))) {
return fileName.substring(0, i);
}
}
return fileName;

}

对MD5加密的操作:

//十六进制下数字到字符的映射数组
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

/** 把inputString加密 */
public static String createPassword(String inputString) {
return encodeByMD5(inputString);
}

/**
*
* Creation Date:2008-3-14
* 验证输入的密码是否正确
* @param password 加密后的源密码
* @param inputString 输入字符串
* @return boolean true为真,false为假
* @Author tianw
*/
public static boolean authenticatePassword(String password,
String inputString) {
if (password.equals(encodeByMD5(inputString))) {
return true;
} else {
return false;
}
}


/** 对字符串进行MD5加密 */
private static String encodeByMD5(String originString) {
if (originString != null) {
try {
// 创建具有指定算法名称的信息摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
byte[] results = md.digest(originString.getBytes());
// 将得到的字节数组变成字符串返回
String resultString = byteArrayToHexString(results);
return resultString.toUpperCase();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}

/**
*
* Creation Date:2008-3-14
* 转换字节数组为十六进制字符串
* @param b 字节数组
* @return String 十六进制字符串
* @Author tianw
*/
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {

String ss = byteToHexString(b[i]);
resultSb.append(ss);
}

return resultSb.toString();
}


/** 将一个字节转化成十六进制形式的字符串 */
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}

/**
* Post提交
*
* @param linkAddress 请求地址
* @param map Key:参数,Value:内容
* @param timeOut 超时时间
* @return
*/
public static String requestPost(String linkAddress, Map<String, String> map, int timeOut) {
String result = null;
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, timeOut * 1000);
HttpConnectionParams.setSoTimeout(httpParams, 60 * 1000);
HttpConnectionParams.setSocketBufferSize(httpParams, 8192);
HttpClient httpClient = new DefaultHttpClient(httpParams);
httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
try {
HttpPost httpost = new HttpPost(linkAddress);
if (map != null) {
List<BasicNameValuePair> postData = new ArrayList<BasicNameValuePair>();
for (Map.Entry<String, String> entry : map.entrySet()) {
postData.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
httpost.setEntity(new UrlEncodedFormEntity(postData, HTTP.UTF_8));
}
HttpResponse response = httpClient.execute(httpost); // 执行

String httpStatus = response.getStatusLine().toString();
if (httpStatus.indexOf("4") > 0 || httpStatus.indexOf("5") > 0) {
result = "error"; // 如果响应码为4开头,则代表访问不成功
}

HttpEntity httpEntity = response.getEntity();
if (httpEntity != null) {
String backStream = EntityUtils.toString(httpEntity); // 回写内容
result = backStream.toString();
httpEntity.consumeContent();
}
} catch (SocketTimeoutException e) {
result = "SoError";
} catch (IOException e) {
result = "IOError";
} catch (Exception e) {
result = "error";
} finally {
httpClient.getConnectionManager().shutdown();
}

return result;
}

/**
* 生成JSONArray
*
* @param map Key:参数,Value:内容
* @return
*/
public static String createJSONArray(Map<String, String> map) {
String result = null;
try {
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
for (Map.Entry<String, String> entry : map.entrySet()) {
jsonObject.put(entry.getKey(), entry.getValue());
}
jsonArray.put(jsonObject);
result = jsonArray.toString();
} catch (Exception e) {

}
return result;
}

/**
* 下载文件并保存
*
* @param fileUrl 下载文件地址
* @param filePath 保存文件位置
* @param fileName 保存文件名称
* @return
*/
public static boolean saveDownFile(String fileUrl, String filePath, String fileName) {
try {
URL url = new URL(fileUrl);
File dirFile = new File(filePath);
if (!dirFile.exists()) {
dirFile.mkdirs();
}
URLConnection ucon = url.openConnection();
InputStream is = ucon.getInputStream();
FileOutputStream fos = new FileOutputStream(new File(filePath + fileName));
byte[] buffer = new byte[256];
int current = 0;
while ((current = is.read(buffer, 0, 256)) != -1) {
fos.write(buffer, 0, current);
}
fos.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}

注明:QQ技术交流群:108614806 感兴趣的加一下。

分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    Android程序设计基础

    Android内置了最常用的行业标准音频和视频格式的编解码器,这些格式包括H.264 (AVC)、MP3和AAC。  当前及未来各类硬件间的可移植性。所有程序都是用Java语言编写的,并且将由Android的Dalvik虚拟机执行,所以代码...

    java开源包11

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包6

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包9

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包4

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包101

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包5

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    java开源包8

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包10

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    javase项目开发源码-RJcenter::face_blowing_a_kiss:常用公共类,Android开源项目,开发工具,开发框架,开发库整理;牛人推荐整理;

    RSen常用公共类,发布到Jcenter 使用方法 //2015-12-15 17:20:54 compile 'com.rsen:rsen:0.0.2' //2015-12-16 16:52:12 compile 'com.rsen:rsen:0.1.0' //2016-1-1 12:52:12 compile 'com.rsen:rsen:1.1.0' 使用介绍...

    java开源包3

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包1

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    ToolKit-Android:Android常用工具集

    Android开发基础工具集,收集了一些常用工具 ##简介-日期Android的替换配置* proguard_log_class.txt:列出apk包内所有类的内部结构* proguard_log_seeds.txt:列的出未使用类和成员* proguard_log_unused.txt:从...

    java开源包2

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    2010年谢彦的android笔记

    1.4 编译在G1上运行的android 2.2(froyo)代码_旧方法 12 1.5 编译在G1上运行的android 2.2(froyo)代码_新方法 15 1.6 编译在N1上运行的android 2.3(GingerBread)代码 18 1.7 系统结构 21 1.8 模拟器调试与真机调试 ...

    java开源包7

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

Global site tag (gtag.js) - Google Analytics