package com.spacesoftwares.imageeditv01;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private ImageView mImgView;
private ImageView mDstImg;
private Button mBtn1, mBtn2, mBtn3, mBtn4;
private Bitmap mBitmap1, mBitmap2, mBitmap3, mBitmap4, mBitmap5;
int wd = 100;
int ht = 100;
int[] pixels;
public final int BLACK = -16777216; // (0xff000000)
public final int BLUE = -16776961; // (0xff0000ff)
public final int CYAN = -16711681; // (0xff00ffff)
public final int DKGRAY = -12303292; // (0xff444444)
public final int GRAY = -7829368; // (0xff888888)
public final int GREEN = -16711936; // (0xff00ff00)
public final int LTGRAY = -3355444; // (0xffcccccc)
public final int MAGENTA = -65281; // (0xffff00ff)
public final int RED = -65536; // (0xffff0000)
public final int TRANSPARENT = 0; // (0x00000000)
public final int WHITE = -1; // (0xffffffff)
public final int YELLOW = -256; // (0xffffff00)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image_view);
// Load bitmap1
// options is to ensure getting the original size, i.e., no magnification or shrink when reading into memory
// otherwise getWidth and getHeight will give different dimension depending on your display device
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inScaled = false;
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
mBitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.r100, opts);
wd = mBitmap1.getWidth();
ht = mBitmap1.getHeight();
mImgView = findViewById(R.id.id_image);
mImgView.setScaleType(ImageView.ScaleType.CENTER);
//mImgView.setImageResource(R.drawable.r100);
mImgView.setImageBitmap(mBitmap1);
mDstImg = findViewById(R.id.id_dst_image);
//mDstImg.setScaleType(ImageView.ScaleType.CENTER);
//mDstImg.setImageResource(R.drawable.r100);
mDstImg.setImageBitmap(mBitmap1);
mBtn1 = findViewById(R.id.id_btn1);
mBtn2 = findViewById(R.id.id_btn2);
mBtn3 = findViewById(R.id.id_btn3);
mBtn4 = findViewById(R.id.id_btn4);
setListeners();
pixels = new int[2*wd*ht];
for(int i=0; i<2*wd*ht; i++){
pixels[i] = YELLOW;
}
}
private void setListeners(){
OnClick onClick = new OnClick();
mBtn1.setOnClickListener(onClick);
mBtn2.setOnClickListener(onClick);
mBtn3.setOnClickListener(onClick);
mBtn4.setOnClickListener(onClick);
}
private class OnClick implements View.OnClickListener {
int offset = 0;
public void onClick(View v){
switch(v.getId()){
case R.id.id_btn1:
//mDstImg.setImageDrawable(null);
mBitmap1.getPixels(pixels, 0, 2*wd, 0, 0, wd, ht);
mBitmap1.getPixels(pixels, wd, 2*wd, 0, 0, wd, ht);
mBitmap2 = Bitmap.createBitmap(pixels, 0, 2*wd, 2*wd, ht, Bitmap.Config.ARGB_8888);
mDstImg.setImageBitmap(mBitmap2);
mImgView.setImageBitmap(mBitmap1);
break;
case R.id.id_btn2:
offset = (2*wd)*(ht/2)+wd/2;
mBitmap1.getPixels(pixels, offset, 2*wd-1, wd/2, ht/2, wd/2, ht/2);
mBitmap3 = Bitmap.createBitmap(pixels, 0, 2*wd, 2*wd, ht, Bitmap.Config.ARGB_8888);
mDstImg.setImageBitmap(mBitmap3);
break;
case R.id.id_btn3:
mDstImg.setImageDrawable(null);
offset = (2*wd)*(ht/2)+wd/2;
mBitmap1.getPixels(pixels, offset, 2*wd, wd/2, ht/2, wd/2, ht/2);
mBitmap1.getPixels(pixels, offset+wd, 2*wd, wd/2, ht/2, wd/2, ht/2);
mBitmap4 = Bitmap.createBitmap(pixels, 0, 2*wd, 2*wd, ht, Bitmap.Config.ARGB_8888);
mDstImg.setImageBitmap(mBitmap4);
break;
case R.id.id_btn4:
mDstImg.setImageDrawable(null);
offset = (2*wd)*(ht/2);
mBitmap1.getPixels(pixels, offset, 2*wd, wd/2, ht/2, wd/2, ht/2);
mBitmap1.getPixels(pixels, offset+wd, 2*wd, wd/2, ht/2, wd/2, ht/2);
mBitmap5 = Bitmap.createBitmap(pixels, 0, 2*wd, 2*wd, ht, Bitmap.Config.ARGB_8888);
mDstImg.setImageBitmap(mBitmap5);
break;
}
}
}
}
评论0
最新资源