我有一个Android应用程序,每33毫秒刷新一次屏幕,在一对坐标上显示一个矩形.以下是自定义视图的代码:
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class OurView extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder holder;
private Handler handler = new Handler();
private Bitmap testimg;
private int xCoord = 500;
private int yCoord = 500;
boolean running = false;
int xPos;
int yPos;
public OurView(Context context) {
super(context);
init();
}
public OurView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public OurView(Context context, AttributeSet attrs, int defStyle) { …Run Code Online (Sandbox Code Playgroud) 我有一个自定义SurfaceView,其方法是doDraw()绘制背景和位图.问题是当我运行这个时我得到一个错误
引起:java.lang.IllegalArgumentException:canvas对象必须与lockCanvas先前返回的实例相同
我不明白为什么会这样.我没有在我的代码中的任何其他地方声明任何其他画布.我只有另外两个类,MainActivity和SurfaceViewExample.MainActivity只是打算打开SurfaceViewExample,而SurfaceViewExample只有一些按钮调用的方法.
OurView类:
package com.thatoneprogrammerkid.gameminimum;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class OurView extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder holder;
private Bitmap testimg;
public int xCoord = 500;
public int yCoord = 500;
public OurView(Context context) {
super(context);
init();
}
public OurView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public OurView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
holder = …Run Code Online (Sandbox Code Playgroud) 我想查看在每次提交中更改的文件列表git log。另一个问题询问如何查看单个提交的更改文件,并得到以下响应:
$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js
Run Code Online (Sandbox Code Playgroud)
我想知道的是如何将其应用到git log. 也就是说,我应该运行什么命令才能获得类似以下输出的内容?
commit 78b3ba12002f9cab5cbb57fac87d8c703702a196
Author: WD40 <example@example.com>
Date: Fri Apr 14 09:59:57 2017 -0500
Change more things
about.html
javascript/application.js
javascript/ie6.js
commit 0f98b1f7eda33a4e9cfaab09506aa8094044085f
Author: WD40 <example@example.com>
Date: Fri Apr 14 09:49:03 2017 -0500
Change some things
index.html
javascript/application.js
javascript/ie6.js
Run Code Online (Sandbox Code Playgroud)
此外,如果可能的话,我想知道如何做同样的事情,而且还显示添加和删除的文件。
我查看了这些git log --format选项,但找不到任何类似于我想要的东西。我有一种感觉,用 git log 是不可能的,并且可能需要将多个 s 的输出串在一起git diff-tree,但我不确定如何在没有脚本的情况下实现这一点(这可能是完成我想要的事情的唯一方法,但是我想我应该继续询问,因为那将是我最后的手段)。