-ccccccal

默默码码的copy-seven


  • 首页

  • 归档

  • 标签

  • 关于

  • 搜索

自定义view的Canvas梳理

发表于 2019-06-23

创建Canvas的方式

        Bitmap bitmap = Bitmap.createBitmap(500, 500,   Bitmap.Config.ARGB_8888);
        Canvas canvas1 = new Canvas();
        Canvas canvas2 = new Canvas(bitmap);


        //使用于绘制高质量图形,刷新频率高,但是系统花销比较大
        SurfaceView surfaceView = new SurfaceView(context);
        SurfaceHolder holder = surfaceView.getHolder();
        Canvas canvas = holder.lockCanvas();
        holder.unlockCanvasAndPost(canvas);
阅读全文 »

自定义view的画笔Paint的梳理

发表于 2019-05-23

画笔:确定绘制内容的具体效果

4.0以上建议关闭硬件加速

android:hardwareAccelerated="false"
阅读全文 »

自定义view的path常用api梳理

发表于 2019-04-23

基本方法

  • reset() 清除掉path里面所有线条以及曲线,但不会改变他的fill-type,不保留原有数据结构

  • rewind() 清除path里面线条和曲线,保留内部数据结构以便复用,删除fill-type(一般选择reset())

  • set(Path mPath) 用新path替换旧path

  • moveTo(float x,float y) 设置当前点位置,后面的绘制从该点开始,设置绘制起点

  • setLastPoint(300, 300) 设置上个点移动到该点处,以后从该点开始绘制

  • lineTo(float x,float y) 上次结束点连接改点,如果上次没有操作,则设置改点为绘制起点

  • close() 设置闭合路径,即连接最后一个点和第一个点,如果无法连接,则什么都不做

阅读全文 »

自定义view测量onMeasure梳理

发表于 2019-03-29

自定义view流程的第一步,测量

onMeasure(),测量自己的大小,为正式布局提供建议(只是建议,用不用还要看onlayout()

测量过程通过measure方法实现,是View树的自顶向下的一次遍历,每个View在循环过程中将自己的尺寸向下传递,测量完成后所有的view都清楚自己的尺寸,

通过setMeasuredDimension(width, height);设置给系统

阅读全文 »

自定义behavior

发表于 2019-03-28

Behavior是CoordinatorLayout的一个抽象内部类

public abstract static class Behavior<V extends View> {
      public Behavior() {
      }

      public Behavior(Context context, AttributeSet attrs) {
      }
      ...
}
阅读全文 »

android使用jenkins进行自动化打包并且上传到fir或者蒲公英

发表于 2019-03-24

android使用jenkins进行自动化打包

首先需要配置jdk,gradle,以及android sdk环境变量,默认这些都是可以的,下载jenkins的war包,mac可以直接使用homebrew安装

windows下打开jenkins

open /Applications/Jenkins/jenkins.war
阅读全文 »

webview全屏播放视频之后加载弹框失败

发表于 2019-03-23

webview播放视频之后,js弹框弹出失败,实际屏幕是暗色的,说明弹框已经弹出,怀疑是x5内核自己实现的全屏出现冲突,所以改为自己实现全屏播放处理

播放视频建议使用腾讯x5内核

 /**
     * 视频全屏参数
     */
    protected static final FrameLayout.LayoutParams COVER_SCREEN_PARAMS = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    private Context mContext;
    private WebView mWebView;
    private LoadingDialog mLoadingDialog;
    private boolean mShowLoading = true;
    private IWebView.OnErrorListener mOnErrorListener;
    private OnPageListener mOnPageListener;
    private View customView;
    private FrameLayout fullscreenContainer;
    private IX5WebChromeClient.CustomViewCallback mCustomViewCallback;
    private FrameLayout mRoot;
阅读全文 »

JS笔记-006-JS对象-数字-字符串-日期-数组-逻辑

发表于 2019-03-21

JS对象

创建 JavaScript 对象

通过 JavaScript,您能够定义并创建自己的对象。

创建新对象有两种不同的方法:

  • 定义并创建对象的实例(直接创建对象)

    person=new Object();
    person.firstname="Bill";
    person.lastname="Gates";
    person.age=56;
    person.eyecolor="blue";
    阅读全文 »

JS笔记-005-DOM(文档对象模型)

发表于 2019-03-19

HTML DOM 树

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应
阅读全文 »

JS笔记-004-常用运算符

发表于 2019-03-16
  • switch 可以省略default的break

    var day=new Date().getDay();
    switch (day)
    {
    case 6:
    x="Today it's Saturday";
    break;
    case 0:
    x="Today it's Sunday";
    break;
    default:
    x="Looking forward to the Weekend";
    }
    阅读全文 »
123…5

alguojian

默默码码的copy-seven

47 日志
© 2020 alguojian
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4