add-class-doc

yuying
王宇洋 3 years ago
parent 9f84029352
commit 5eb4fb9813

@ -11,9 +11,8 @@ import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {

@ -5,6 +5,10 @@ import android.app.Application;
import cn.leancloud.LCLogger;
import cn.leancloud.LeanCloud;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class APP extends Application {
@Override
public void onCreate() {

@ -10,6 +10,12 @@ import org.json.JSONObject;
import java.util.HashMap;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class BaiduImageAPI {
//设置APPID/AK/SK
public static final String APP_ID = "24778510";

@ -1,5 +1,10 @@
package com.echo.colorizeit.BaiduAPI;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public enum styleTransTypes {
cartoon,
pencil,
@ -10,4 +15,5 @@ public enum styleTransTypes {
mononoke,
scream,
gothic
}

@ -14,6 +14,10 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class PhotoLib {
public static byte[] BitmapToBytes(Bitmap img){
int bytes = img.getByteCount();

@ -1,5 +1,9 @@
package com.echo.colorizeit.ImageUtil;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class rcImage {
private String imgName;
private String imgBase64Data;

@ -1,4 +1,4 @@
package com.echo.colorizeit.ImageUtil;
package com.echo.colorizeit.ImageUtil.thirdparty;
import android.content.Context;
import android.graphics.Bitmap;
@ -24,6 +24,7 @@ import com.luck.picture.lib.widget.longimage.ImageViewState;
import com.luck.picture.lib.widget.longimage.SubsamplingScaleImageView;
/**
* ==================This is a imported class================
* @authorluck
* @date2019-11-13 17:02
* @describeGlide

@ -1,10 +1,11 @@
package com.echo.photo_editor;
package com.echo.colorizeit.ImageUtil.thirdparty;
import android.app.Activity;
import android.content.Context;
import android.content.ContextWrapper;
/**
* ==================This is a imported class================
* @authorluck
* @date2021/7/14 3:15 PM
* @describeImageLoaderUtils

@ -1,5 +1,9 @@
package com.echo.colorizeit.Interfaces;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public interface RequestsListener {
void success(String data);
void failure(String info);

@ -1,5 +0,0 @@
package com.echo.colorizeit.ML;
public interface MLModel {
void process(String path, ProcessListener listener);
}

@ -1,9 +0,0 @@
package com.echo.colorizeit.ML;
import android.graphics.Bitmap;
public interface ProcessListener {
void success(String data);
void failure(String info);
void success(Bitmap FinishedBitmap);
}

@ -1,58 +0,0 @@
package com.echo.colorizeit.ML;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.example.myapplication.ml.MagentaArbitraryImageStylizationV1256Fp16Prediction1;
import com.example.myapplication.ml.MagentaArbitraryImageStylizationV1256Fp16Transfer1;
import org.tensorflow.lite.support.image.TensorImage;
import org.tensorflow.lite.support.tensorbuffer.TensorBuffer;
import java.io.IOException;
public class StyleTransModel implements MLModel{
private Context context;
public StyleTransModel(Context context) {
this.context = context;
}
@Override
public void process(String path, ProcessListener listener) {
new Thread(new Runnable() {
@Override
public void run() {
Bitmap bitmap = BitmapFactory.decodeFile(path);
//Style Prediction
try {
MagentaArbitraryImageStylizationV1256Fp16Prediction1 model1 = MagentaArbitraryImageStylizationV1256Fp16Prediction1.newInstance(context);
// Creates inputs for reference.
TensorImage styleImage = TensorImage.fromBitmap(bitmap);
// Runs model inference and gets result.
MagentaArbitraryImageStylizationV1256Fp16Prediction1.Outputs outputs1 = model1.process(styleImage);
TensorBuffer styleBottleneck = outputs1.getStyleBottleneckAsTensorBuffer();
// Releases model resources if no longer used.
model1.close();
MagentaArbitraryImageStylizationV1256Fp16Transfer1 model2 = MagentaArbitraryImageStylizationV1256Fp16Transfer1.newInstance(context);
// Creates inputs for reference.
TensorImage contentImage = TensorImage.fromBitmap(bitmap);
// Runs model inference and gets result.
MagentaArbitraryImageStylizationV1256Fp16Transfer1.Outputs outputs2 = model2.process(contentImage, styleBottleneck);
TensorImage styledImage = outputs2.getStyledImageAsTensorImage();
Bitmap styledImageBitmap = styledImage.getBitmap();
// Releases model resources if no longer used.
model2.close();
listener.success(styledImageBitmap);
// listener.success(SerializeUtil.serialize(styledImageBitmap));
} catch (IOException e) {
// TODO Handle the exception
}
}
}).start();
}
}

@ -35,6 +35,10 @@ import kotlin.Unit;
import kotlin.jvm.functions.Function1;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class MainActivity extends AppCompatActivity {
private AppBarConfiguration mAppBarConfiguration;

@ -15,6 +15,10 @@ import cn.leancloud.LCUser;
import io.reactivex.disposables.Disposable;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class Util {
public static List<String> getFilesAllName(String path) {
File file=new File(path);

@ -9,6 +9,10 @@ import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.snackbar.Snackbar;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class BaseActivity extends AppCompatActivity {
public static final int READ_WRITE_STORAGE = 52;
private ProgressDialog mProgressDialog;

@ -9,6 +9,10 @@ import androidx.fragment.app.Fragment;
import com.google.android.material.snackbar.Snackbar;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class BaseFragment extends Fragment {
public static final int READ_WRITE_STORAGE = 52;
private ProgressDialog mProgressDialog;

@ -8,6 +8,10 @@ import com.camerakit.CameraKitView;
import com.example.myapplication.databinding.CamerakitViewBinding;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class CameraKitActivity extends AppCompatActivity {
private CamerakitViewBinding binding;

@ -10,6 +10,10 @@ import com.echo.colorizeit.BaiduAPI.BaiduImageAPI;
import com.echo.colorizeit.ImageUtil.PhotoLib;
import com.echo.colorizeit.Interfaces.RequestsListener;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class ImageUploadActivityViewModel extends ViewModel {
private BaiduImageAPI baiduImageAPI;
private String imagePath;

@ -31,6 +31,10 @@ import com.example.myapplication.databinding.ImageColorizeUploadActivityBinding;
import ch.halcyon.squareprogressbar.utils.PercentStyle;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class ImageUploadViewActivity extends BaseActivity {
private AppBarConfiguration mAppBarConfiguration;
private ImageColorizeUploadActivityBinding binding;

@ -25,6 +25,10 @@ import com.echo.colorizeit.ui.BaseActivity;
import com.example.myapplication.R;
import com.example.myapplication.databinding.OpenScreenBinding;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class OpenScreenActivity extends BaseActivity {
private OpenScreenBinding binding;
private Activity _this = this;

@ -12,6 +12,11 @@ import cn.leancloud.LCUser;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class OpenScreenViewModel extends ViewModel {
private MutableLiveData<SharedPreferences> setting;
private MutableLiveData<Boolean> Is_user_first_enter_this_app;

@ -16,11 +16,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.echo.colorizeit.ML.ProcessListener;
import com.echo.colorizeit.ML.StyleTransModel;
import com.echo.colorizeit.ui.BaseFragment;
import com.echo.colorizeit.ImageUtil.GlideEngine;
import com.echo.colorizeit.ImageUtil.thirdparty.GlideEngine;
import com.example.myapplication.R;
import com.example.myapplication.databinding.FragmentImageColorizeBinding;
@ -33,6 +30,10 @@ import com.luck.picture.lib.listener.OnResultCallbackListener;
import java.util.List;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class ImageProcessTESTFragment extends BaseFragment {
private ImageProcessTESTViewModel model;
@ -40,7 +41,6 @@ public class ImageProcessTESTFragment extends BaseFragment {
private ImageProcessTESTFragment _this = this;
private String sourceFilePath;
private StyleTransModel styleTransModel;
// private ActivityResultLauncher requestPermission = registerForActivityResult(new ActivityResultContracts.RequestPermission(), new ActivityResultCallback<Boolean>() {
// @Override
@ -57,7 +57,7 @@ public class ImageProcessTESTFragment extends BaseFragment {
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
styleTransModel = new StyleTransModel(getContext());
// styleTransModel = new StyleTransModel(getContext());
// superResolutionModel = new SuperResolutionModel(getContext());
model =
new ViewModelProvider(this).get(ImageProcessTESTViewModel.class);
@ -139,21 +139,21 @@ public class ImageProcessTESTFragment extends BaseFragment {
// imageColorizeViewModel.setColorizedImageBitmap(styledImageBitmap);
// }
// });
styleTransModel.process(sourceFilePath, new ProcessListener() {
@Override
public void success(String data) {
hideLoading();
}
@Override
public void failure(String info) {
hideLoading();
}
@Override
public void success(Bitmap styledImageBitmap) {
model.setColorizedImageBitmap(styledImageBitmap);
hideLoading();
}
});
// styleTransModel.process(sourceFilePath, new ProcessListener() {
// @Override
// public void success(String data) {
// hideLoading();
// }
// @Override
// public void failure(String info) {
// hideLoading();
// }
// @Override
// public void success(Bitmap styledImageBitmap) {
// model.setColorizedImageBitmap(styledImageBitmap);
// hideLoading();
// }
// });
}
});

@ -6,6 +6,10 @@ import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class ImageProcessTESTViewModel extends ViewModel {
private MutableLiveData<String> mText;

@ -26,6 +26,10 @@ import java.util.ArrayList;
import java.util.List;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class GalleryFragment extends BaseFragment {
private GalleryViewModel model;

@ -4,6 +4,10 @@ import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class GalleryViewModel extends ViewModel {
private MutableLiveData<String> mText;

@ -17,6 +17,10 @@ import com.example.myapplication.R;
import java.util.List;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder> {
private List<rcImage> imageList;
public ImageAdapter(List<rcImage> list) {

@ -26,7 +26,7 @@ import androidx.annotation.Nullable;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.echo.colorizeit.ImageUtil.GlideEngine;
import com.echo.colorizeit.ImageUtil.thirdparty.GlideEngine;
import com.echo.colorizeit.Util;
import com.echo.stinger_game.myganme.GameActivity;
import com.echo.colorizeit.ui.BaseFragment;
@ -43,6 +43,10 @@ import com.sdsmdg.harjot.rotatingtext.RotatingTextWrapper;
import java.util.List;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class MainIndexPageFragment extends BaseFragment {
private static final int REQUEST_IMAGE_CAPTURE = 1;

@ -13,6 +13,10 @@ import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class MainIndexPageViewModel extends ViewModel {
private MutableLiveData<String> mText;

@ -19,6 +19,10 @@ import cn.leancloud.LCObject;
import cn.leancloud.LCUser;
import io.reactivex.disposables.Disposable;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class UserFragment extends Fragment {
private UserFragmentViewModel model;
private FragmentUserBinding binding;

@ -7,6 +7,10 @@ import cn.leancloud.LCObject;
import cn.leancloud.LCUser;
import io.reactivex.disposables.Disposable;
/**
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class UserFragmentViewModel extends ViewModel {
private MutableLiveData<Double> balance;
private MutableLiveData<Integer> processedCount;

@ -5,7 +5,8 @@ import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
/**
* Created by onkar_nene on 02-02-2016.
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class ResizableImageView extends androidx.appcompat.widget.AppCompatImageView {
public ResizableImageView(Context context, AttributeSet attributeSet) {

Binary file not shown.

@ -5,9 +5,8 @@ import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
* @author Wang Yuyang
* @date 2021-09-22 13:52:43
*/
public class ExampleUnitTest {
@Test

@ -6,7 +6,7 @@ android {
compileSdk 30
defaultConfig {
// applicationId "com.echo.photo_editor"
applicationId "com.echo.photo_editor"
minSdk 21
targetSdk 30
versionCode 1

@ -11,9 +11,8 @@ import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
* @author WangYuyang
* @date 2021-10-30 15:56:43
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {

@ -26,11 +26,11 @@
<activity
android:name=".MainActivity"
android:exported="true">
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

@ -2,6 +2,10 @@ package com.echo.photo_editor.ML;
import android.graphics.Bitmap;
/**
* @author WangYuyang
* @date 2021-09-22 13:54:24
*/
public interface MLModel {
void process(String path, ProcessListener listener);
void process(Bitmap img_style, Bitmap img_to_be_process, ProcessListener listener);

@ -2,6 +2,10 @@ package com.echo.photo_editor.ML;
import android.graphics.Bitmap;
/**
* @author WangYuyang
* @date 2021-09-22 13:54:24
*/
public interface ProcessListener {
void start();
void success(Bitmap FinishedBitmap);

@ -13,6 +13,10 @@ import org.tensorflow.lite.support.tensorbuffer.TensorBuffer;
import java.io.IOException;
/**
* @author WangYuyang
* @date 2021-09-22 13:54:24
*/
public class StyleTransModel implements MLModel {
private Context context;

@ -8,6 +8,7 @@ import android.view.View;
import com.echo.photo_editor.databinding.ActivityMainBinding;
import com.echo.photo_editor.photo_editor_view.PhotoEditorView;
import com.echo.photo_editor.thirdparty.GlideEngine;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
@ -16,6 +17,10 @@ import com.luck.picture.lib.listener.OnResultCallbackListener;
import java.util.List;
/**
* @author WangYuyang
* @date 2021-10-30 15:56:43
*/
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding;
private MainActivity _this = this;
@ -25,6 +30,7 @@ public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
//-----------------------------TEST Image-------------------------------
sourceFilePath = "/storage/emulated/0/Pictures/Colorized Image (26).jpg";
Intent intent = new Intent(_this, PhotoEditorView.class);
intent.putExtra("sourceFilePath", sourceFilePath);

@ -27,6 +27,10 @@ import com.echo.photo_editor.photo_editor_view.model.Toolbox;
import java.util.ArrayList;
/**
* @author WangYuyang
* @date 2021-10-29 12:33:11
*/
public class PhotoEditorView extends AppCompatActivity {
public PhotoEditorViewModel model;
private ActivityPhotoEditorBinding binding;

@ -11,6 +11,10 @@ import com.echo.photo_editor.photo_editor_view.model.EditableImage;
import java.util.ArrayList;
/**
* @author WangYuyang
* @date 2021-10-29 12:34:44
*/
public class PhotoEditorViewModel extends ViewModel {
private MutableLiveData<String> sourceFilePath = new MutableLiveData<>("");
private CustomMutableLiveData<EditableImage> editableImage = new CustomMutableLiveData<>();

@ -17,6 +17,10 @@ import com.echo.photo_editor.photo_editor_view.model.Toolbox;
import java.util.ArrayList;
/**
* @author WangYuyang
* @date 2021-10-29 13:12:05
*/
public class ImagePreviewAdapter extends RecyclerView.Adapter {
private Boolean isShowing_tool = false;

@ -4,6 +4,10 @@ import androidx.databinding.BaseObservable;
import androidx.databinding.Observable;
import androidx.lifecycle.MutableLiveData;
/**
* @author WangYuyang
* @date 2021-10-30 15:23:14
*/
public class CustomMutableLiveData<T extends BaseObservable>
extends MutableLiveData<T> {

@ -11,6 +11,10 @@ import java.util.ArrayList;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedDeque;
/**
* @author WangYuyang
* @date 2021-10-30 14:07:24
*/
public class EditableImage extends BaseObservable {
private Bitmap current_bitmap;
private Bitmap source_bitmap;

@ -7,6 +7,10 @@ import android.view.View;
import com.echo.photo_editor.ML.ProcessListener;
import com.echo.photo_editor.photo_editor_view.PhotoEditorView;
/**
* @author WangYuyang
* @date 2021-10-29 22:51:42
*/
public class StyleTool extends Tool {
public Bitmap style_image;

@ -3,6 +3,10 @@ package com.echo.photo_editor.photo_editor_view.model;
import android.graphics.Bitmap;
import android.view.View;
/**
* @author WangYuyang
* @date 2021-10-29 20:19:41
*/
public class Tool implements ToolBarItem {
public String name;
public Bitmap image;

@ -2,6 +2,10 @@ package com.echo.photo_editor.photo_editor_view.model;
import android.graphics.Bitmap;
/**
* @author WangYuyang
* @date 2021-10-29 20:49:42
*/
public interface ToolBarItem {
String getName();
Bitmap getImage();

@ -4,6 +4,10 @@ import android.graphics.Bitmap;
import java.util.ArrayList;
/**
* @author WangYuyang
* @date 2021-10-29 13:14:48
*/
public class Toolbox implements ToolBarItem{
public String name;
public Bitmap image;

@ -1,4 +1,4 @@
package com.echo.photo_editor;
package com.echo.photo_editor.thirdparty;
import android.content.Context;
import android.graphics.Bitmap;
@ -15,6 +15,7 @@ import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.BitmapImageViewTarget;
import com.bumptech.glide.request.target.ImageViewTarget;
import com.echo.photo_editor.R;
import com.luck.picture.lib.engine.ImageEngine;
import com.luck.picture.lib.listener.OnImageCompleteCallback;
import com.luck.picture.lib.tools.MediaUtils;
@ -23,6 +24,7 @@ import com.luck.picture.lib.widget.longimage.ImageViewState;
import com.luck.picture.lib.widget.longimage.SubsamplingScaleImageView;
/**
* ==================This is a imported class================
* @authorluck
* @date2019-11-13 17:02
* @describeGlide

@ -1,13 +1,14 @@
package com.echo.colorizeit.ImageUtil;
package com.echo.photo_editor.thirdparty;
import android.app.Activity;
import android.content.Context;
import android.content.ContextWrapper;
/**
* ==================This is a imported class================
* @authorluck
* @date2021/7/14 3:15 PM
* @describeImageLoaderUtils
* @date2019-11-13 17:02
* @describeGlide
*/
public class ImageLoaderUtils {

@ -5,9 +5,8 @@ import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
* @author WangYuyang
* @date 2021-10-30 15:56:43
*/
public class ExampleUnitTest {
@Test

@ -11,9 +11,8 @@ import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
* @author Wang Yuyang
* @date 2021-10-30 16:08:27
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {

@ -7,6 +7,10 @@ import android.os.Bundle;
import com.echo.stinger_game.myganme.GameActivity;
/**
* @author Wang Yuyang
* @date 2021-10-30 16:08:27
*/
public class MainActivity extends AppCompatActivity {
@Override

@ -9,6 +9,10 @@ import android.graphics.Rect;
import com.echo.stinger_game.R;
/**
* @author Wang Yuyang
* @date 2021-10-11 10:28:11
*/
public class Bird extends RectHittableObject {
private Bitmap bird;
private final int speed = Scene.speed;

@ -4,6 +4,10 @@ import android.content.Context;
import java.util.Random;
/**
* @author Wang Yuyang
* @date 2021-10-11 15:38:36
*/
public class BirdMoving extends Bird {
private int randomNum = 0;

@ -7,6 +7,10 @@ import android.graphics.Canvas;
import com.echo.stinger_game.R;
/**
* @author Wang Yuyang
* @date 2021-10-11 10:28:11
*/
public class Box extends RectHittableObject {
private Bitmap obstacle;
private final int speed = Scene.speed;

@ -8,6 +8,10 @@ import android.graphics.Rect;
import com.echo.stinger_game.R;
/**
* @author Wang Yuyang
* @date 2021-10-11 10:28:11
*/
public class Cloud extends RectHittableObject {
private Bitmap cloud;
private final int speed = Scene.speed;

@ -2,6 +2,10 @@ package com.echo.stinger_game.myganme;
import android.graphics.Canvas;
/**
* @author Wang Yuyang
* @date 2021-10-10 18:51:11
*/
public interface Drawable {
void draw(Canvas canvas);
}

@ -8,6 +8,10 @@ import android.view.WindowManager;
import androidx.appcompat.app.AppCompatActivity;
/**
* @author Wang Yuyang
* @date 2021-10-11 10:40:25
*/
public class GameActivity extends AppCompatActivity {
@Override

@ -18,6 +18,10 @@ import androidx.annotation.NonNull;
import java.util.ArrayList;
import java.util.ConcurrentModificationException;
/**
* @author Wang Yuyang
* @date 2021-10-11 11:26:47
*/
public class GameView extends SurfaceView implements SurfaceHolder.Callback, Runnable {
public static final Boolean DEBUG = true;
public static int FPS = 60;

@ -4,6 +4,10 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
/**
* @author Wang Yuyang
* @date 2021-10-10 20:23:07
*/
public class Ground implements Drawable {
private final Paint paint;

@ -3,6 +3,10 @@ package com.echo.stinger_game.myganme;
import android.graphics.Point;
import android.graphics.Rect;
/**
* @author Wang Yuyang
* @date 2021-10-10 15:49:05
*/
public interface Hittable {
Rect getBorderRect();

@ -1,5 +1,9 @@
package com.echo.stinger_game.myganme;
/**
* @author Wang Yuyang
* @date 2021-10-11 09:47:46
*/
public interface Movable {
void setLocation(int x, int y);

@ -11,6 +11,10 @@ import android.graphics.Rect;
import com.echo.stinger_game.R;
/**
* @author Wang Yuyang
* @date 2021-10-11 10:48:52
*/
public class Player extends RectHittableObject {
public static final int playerWidth = 150;
public static final int playerHeight = 150;

@ -6,6 +6,10 @@ import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.Rect;
/**
* @author Wang Yuyang
* @date 2021-10-10 21:47:23
*/
public abstract class RectHittableObject implements Hittable, Movable, Drawable {
private int x;
private int y;

@ -6,6 +6,10 @@ import java.util.ArrayList;
import java.util.ConcurrentModificationException;
import java.util.Random;
/**
* @author Wang Yuyang
* @date 2021-10-11 11:08:58
*/
public class Scene {
public static int speed = 420;
public static int distance = 0; //from right of the screen

@ -5,9 +5,8 @@ import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
* @author Wang Yuyang
* @date 2021-10-30 16:08:27
*/
public class ExampleUnitTest {
@Test

Loading…
Cancel
Save