这是我第二篇CSDN文章了,写这篇文章的时候,心态已经发生了些变化。因为最近看了一个朋友介绍的一本书《奇特的一生》。在很多人看来,书中的主人翁柳比歇夫生活、工作的方法饱受争议。但是,在我看来,如果一个普通人,想要在一生之中有点成就,想要给这个世界留点什么有价值的东西,柳比歇夫的方法或许可以起到很大的作用。当我尝试去按照他的方法去做的时候,我的内心变得很纯净,丝毫不受外界各种琐碎之事的影响。另外看过一本书里面的一句话:当你安静的时候,智慧就会升起来。所以,在很多的时候,我就会去静静的思考,思考多了,慢慢地就看开了一些事情,对时间、生命的本质也会有自己的理解。闲话扯远了,今天我想要给大家带来的是关于纯代码实现的简易的的走势图。下面是效果图:
1.为了减轻我们UI的压力,我们只出了一套图片是针对分辨率为1280 *720,这样为了解决屏幕的适配的问题,我们必须对不同的手机的屏幕的分辨率对图片进行处理。下面是对控件加载显示的核心的类:
package com.poker175.activity;
import java.io.File;
import java.lang.ref.WeakReference;
import java.math.BigInteger;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.WeakHashMap;
import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.Typeface;
import android.os.Build.VERSION;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.poker175.util.StringUtil;
import static android.content.Context.WINDOW_SERVICE;
public class BaseCommand {
public static String verName;
public static int verCode;
public static String pkg;
public static String imei;
public static String imsi;
public static int osver;
public static String phone;
public static String sim;
public static String model;
public static int sW;
public static int sH;
public static String duoapp_channelid;
public static String sdkVercode;
public static float radio = 1, radio1 = 1, radio_s = 1;
public static float radioH;
public static float radioW;
public static int deltaX = 0;
public static int deltaY = 0;
public static float W = 1280.F;
public static float H = 720.F;
static WeakHashMap<String, WeakReference<Bitmap>> bmpCacheMap = new WeakHashMap<String, WeakReference<Bitmap>>();
/**
* @param a
*/
public static void getDeviceInfo(Activity a) {
if (TextUtils.isEmpty(verName)) {
PackageManager pm = a.getPackageManager();
try {
PackageInfo info = pm.getPackageInfo(a.getPackageName(), 0);
pkg = info.applicationInfo.packageName;
verName = info.versionName;
verCode = info.versionCode;
TelephonyManager tm = (TelephonyManager) a
.getSystemService(Context.TELEPHONY_SERVICE);
imei = tm.getDeviceId();
imsi = tm.getSubscriberId();
phone = tm.getLine1Number();
sim = tm.getSimSerialNumber();
osver = VERSION.SDK_INT;
model = android.os.Build.MODEL;
// @@System.out.println("model:" + model);
DisplayMetrics dm = new DisplayMetrics();
a.getWindowManager().getDefaultDisplay().getMetrics(dm);
sW = dm.widthPixels;
sH = dm.heightPixels;
float scaleX = (float) sW / 1280;// 以1280*720为标准进行缩放
float scaleY = (float) sH / 720;
radio = scaleX >= scaleY ? scaleY : scaleX;
duoapp_channelid = DuoCommond.duoapp_channelid;
sdkVercode = DuoCommond.sdkVercode;
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
/**
* @param a
*/
public static void getDeviceInfo(Service a) {
if (TextUtils.isEmpty(verName)) {
PackageManager pm = a.getPackageManager();
try {
PackageInfo info = pm.getPackageInfo(a.getPackageName(), 0);
pkg = info.applicationInfo.packageName;
verName = info.versionName;
verCode = info.versionCode;
TelephonyManager tm = (TelephonyManager) a
.getSystemService(Context.TELEPHONY_SERVICE);
imei = tm.getDeviceId();
imsi = tm.getSubscriberId();
phone = tm.getLine1Number();
sim = tm.getSimSerialNumber();
osver = VERSION.SDK_INT;
model = android.os.Build.MODEL;
WindowManager wm = (WindowManager) a.getSystemService(WINDOW_SERVICE);
// 具体返回对象是WindowMangerIml类
Display display = wm.getDefaultDisplay();
DisplayMetrics dm = new DisplayMetrics();
display.getMetrics(dm);
sW = dm.widthPixels;
sH = dm.heightPixels;
duoapp_channelid = DuoCommond.duoapp_channelid;
sdkVercode = DuoCommond.sdkVercode;
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
/**
* @param context
* @param name
* @return
*/
public static String getMeataStringData(Context context, String name) {
try {
ApplicationInfo ai = context.getPackageManager()
.getApplicationInfo(context.getPackageName(),
PackageManager.GET_META_DATA);
Bundle bundle = ai.metaData;
return bundle.getString(name);
} catch (Exception e) {
}
return "";
}
/**
* @param context
* @param name
* @return
*/
public static int getMeataIntData(Context context, String name) {
try {
ApplicationInfo ai = context.getPackageManager()
.getApplicationInfo(context.getPackageName(),
PackageManager.GET_META_DATA);
Bundle bundle = ai.metaData;
return bundle.getInt(name, 0);
} catch (Exception e) {
}
return 0;
}
/**
* @param context
* @param dir
* @return
*/
public static String getCachePath(Context context, String dir) {
String path = null;
if (TextUtils.isEmpty(dir))
dir = context.getPackageName();
String tmp = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(tmp)) {
// path = "/sdcard/" + dir + "/";
path = Environment.getExternalStorageDirectory().getPath() + "/"
+ dir + "/";
File file = new File(path);
if (!file.exists()) {
file.mkdir();
}
file = null;
//
} else {
path = context.getCacheDir().getAbsolutePath() + File.separator;
}
// @@System.out.println("getCachePath:" + path);
return path;
}
/**