1,创建项目
2,使用Martix完成Bitmip图片展示
3,使用Martix 平移
4,使用Martix 缩放
5,使用Martix 旋转
6,使用Martix 错切
//创建MyMartix类继承View
package com.example.day0010r;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TimePicker;
import androidx.annotation.Nullable;
public class MyMatrix extends View {
private Matrix matrix;
private Paint paint;
private Bitmap bitmap;
public MyMatrix(Context context) {
super(context);
init();
}
public MyMatrix(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
matrix = new Matrix();
paint = new Paint();
bitmap = BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(bitmap,matrix,paint);
}
public void scale(int sx,int sy){
matrix.setScale(sx,sy);
invalidate();
}
public void rotate(float degree){
matrix.setRotate(degree);
invalidate();
}
public void translate(int x,int y){
matrix.setTranslate(x,y);
invalidate();
}
public void skew(int kx,int ky){
matrix.setSkew(kx,ky);
invalidate();
}
}
//主类
package com.example.day0010r;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
import com.github.chrisbanes.photoview.PhotoView;
import com.google.gson.Gson;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private PhotoView photo;
private Button sf;
private Button xz;
private Button wy;
private Button qx;
private ImageView image222;
private MyMatrix mymartix;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
sf.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mymartix.scale(1, 2);
}
});
xz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mymartix.rotate(30);
}
});
wy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mymartix.translate(0, 20);
}
});
qx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mymartix.skew(1, 0);
}
});
}
private void initView() {
rv = (RecyclerView) findViewById(R.id.rv);
photo = (PhotoView) findViewById(R.id.photo);
sf = (Button) findViewById(R.id.sf);
xz = (Button) findViewById(R.id.xz);
wy = (Button) findViewById(R.id.wy);
qx = (Button) findViewById(R.id.qx);
image222 = (ImageView) findViewById(R.id.image222);
mymartix = (MyMatrix) findViewById(R.id.mymartix);
}
}
7,使用PhotoView查阅图片
8,使用PickerView完成时间选择器
9,使用PickerView完成省市区三级联动
10,结束时正确演示效果.
链接: https://blog.youkuaiyun.com/SeeYouTomorrow_s/article/details/114293473.