public void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.imge2);
imagev = (ImageView)findViewById(R.id.myImage);
// button1 = (Button)findViewById(R.id.myBu);
zoom = (ZoomControls)findViewById(R.id.myBu2);
button3 = (Button)findViewById(R.id.myBu3);
button4 = (Button)findViewById(R.id.myBu4);
layout = (RelativeLayout)findViewById(R.id.layout1);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
dw = dm.widthPixels;
dy = dm.heightPixels- 80;
scw = getWallpaperDesiredMinimumWidth()/2;
sch = getWallpaperDesiredMinimumHeight();
imagev.setScaleType(ScaleType.FIT_CENTER);
bm = BitmapFactory.decodeResource(getResources(), R.drawable.image_1);
imagev.setImageBitmap(bm);
pich = bm.getHeight();
picw = bm.getWidth();
zoom.setIsZoomInEnabled(true);
zoom.setIsZoomOutEnabled(true);
用ZoomControls实现放大缩小
zoom.setOnZoomInClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int bmpWidth=bm.getWidth();
int bmpHeight=bm.getHeight();
/* 设定图片放大的比例 */
double scale=1.25;
/* 计算这次要放大的比例 */
x=(float)(x*scale);
y=(float)(y*scale);
/* 产生reSize后的Bitmap对象 */
Matrix matrix = new Matrix();
matrix.postScale(x, y);
Bitmap resizeBmp = Bitmap.createBitmap(bm,0,0,bmpWidth,bmpHeight,matrix,true);
imagev.setImageBitmap(resizeBmp);
zoom.setIsZoomOutEnabled(true);
if(x*scale*bmpWidth>dw||y*scale*bmpHeight>dy)
{
zoom.setIsZoomInEnabled(false);
}
}
});zoom.setOnZoomOutClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int bitw = bm.getWidth();
int bith = bm.getHeight();
//缩小比例
double scale = 0.8 ;
x = (float) (x * scale);
y = (float) (y * scale);
Matrix ma = new Matrix();
ma.postScale(x, y);
Bitmap bit = Bitmap.createBitmap(bm,0,0,bitw,bith,ma,true);
imagev.setImageBitmap(bit);
zoom.setIsZoomInEnabled(true);
if(x*scale*bitw<10||y*scale*bith<10){
zoom.setIsZoomOutEnabled(false);
}
}
});
图片投拽:
imagev.setOnTouchListener(new OnTouchListener() {
private float x, y;
private int mx, my;
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
x = event.getX();
y = event.getY();
case MotionEvent.ACTION_MOVE:
mx = (int)(event.getRawX() - x);
my = (int)(event.getRawY() - 50 - y);
imagev.layout(mx, my, mx + v.getWidth(), my + v.getHeight());
break;
}
return true;
}
});button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
angel -- ;
int neww = picw * times ;
int newh = pich * times ;
float scalew = (float)(neww / picw);
float scalwh = (float)(newh / pich);
Matrix ma = new Matrix();
ma.postScale(scalew, scalwh);
ma.setRotate(5 * angel);
Bitmap bit = Bitmap.createBitmap(bm , 0 ,0 ,picw ,pich , ma , true);
BitmapDrawable newbit = new BitmapDrawable(bit);
imagev.setImageDrawable(newbit);
}
});button4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
angel ++ ;
int neww = picw * times ;
int newh = pich * times ;
float scalew = (float)(neww / picw);
float scalwh = (float)(newh / pich);
Matrix ma = new Matrix();
ma.postScale(scalew, scalwh);
ma.setRotate(5 * angel);
Bitmap bit = Bitmap.createBitmap(bm , 0 ,0 ,picw ,pich , ma , true);
BitmapDrawable newbit = new BitmapDrawable(bit);
imagev.setImageDrawable(newbit);
}
});