使用Java代码的方式实现简易的走势图(1)

这是我第二篇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;
    }

    /**
     
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值