易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Android 图片放大缩小
Android 图片放大缩小
package
com.wansha;
import
android.app.Activity;
import
android.app.AlertDialog;
import
android.content.DialogInterface;
import
android.graphics.Bitmap;
import
android.graphics.BitmapFactory;
import
android.graphics.Matrix;
import
android.os.Bundle;
import
android.util.DisplayMetrics;
import
android.util.Log;
import
android.view.KeyEvent;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.ImageView;
import
android.widget.RelativeLayout;
public
class
Activity31
extends
Activity {
private
RelativeLayout layout;
private
Button big;
private
Button small;
private
ImageView bg;
private
Bitmap map;
private
float
scaleH =
1
;
private
float
scaleW =
1
;
private
int
id;
private
DisplayMetrics metrics;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
this
.layout = (RelativeLayout)
this
.findViewById(R.id.la);
this
.big = (Button)
this
.findViewById(R.id.big);
this
.small = (Button)
this
.findViewById(R.id.small);
// this.image2 = (ImageView)this.findViewById(R.id.image1);
// this.image2.setImageResource(R.drawable.left);
this
.bg = (ImageView)
this
.findViewById(R.id.bg);
// this.bg.setImageResource(R.drawable.tttt);
this
.map = BitmapFactory.decodeResource(getResources(), R.drawable.tttt);
Log.d(
"mydebug"
,
"imageheigh---->"
+ map.getWidth() +
"imagewidth------->"
+ map.getHeight());
metrics =
new
DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
// Bitmap bm = Bitmap.createBitmap(map, 0, 0, 100, 100);
// this.bg.setImageBitmap(bm);
Log.d(
"mydebug"
,
"screen_width--------->"
+ metrics.widthPixels +
"screen_height----------->"
+ metrics.heightPixels);
this
.big.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
float
scale =
1
.25f;
Matrix matrix =
new
Matrix();
scaleW = scaleW * scale;
scaleH = scaleH * scale;
if
(scaleH*map.getHeight() >= metrics.heightPixels || scaleW*map.getWidth() >= metrics.widthPixels){
big.setEnabled(
false
);
return
;
}
if
(id ==
0
){
layout.removeView(bg);
}
else
{
layout.removeView((ImageView)findViewById(id));
}
matrix.postScale(scaleW, scaleH);
Bitmap bitmap = Bitmap.createBitmap(map,
0
,
0
, map.getWidth(), map.getHeight(), matrix,
true
);
bg.setImageBitmap(bitmap);
ImageView image =
new
ImageView(Activity31.
this
);
image.setId(++id);
image.setImageBitmap(bitmap);
layout.addView(image);
setContentView(layout);
System.out.println(
"bit---------->"
+ scaleH*scale*map.getHeight() +
" : "
+ scaleW*scale*map.getWidth());
if
(scaleH*scale*map.getHeight() >= metrics.heightPixels || scaleW*scale*map.getWidth() >= metrics.widthPixels){
big.setEnabled(
false
);
}
else
{
big.setEnabled(
true
);
}
small.setEnabled(
true
);
}
});
this
.small.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View v) {
if
(id ==
0
){
layout.removeView(bg);
}
else
{
layout.removeView((ImageView)findViewById(id));
}
float
scale =
0
.8f;
Matrix matrix =
new
Matrix();
scaleW = scaleW * scale;
scaleH = scaleH * scale;
matrix.postScale(scaleW, scaleH);
Bitmap bitmap = Bitmap.createBitmap(map,
0
,
0
, map.getWidth(), map.getHeight(), matrix,
true
);
bg.setImageBitmap(bitmap);
ImageView image =
new
ImageView(Activity31.
this
);
image.setId(++id);
image.setImageBitmap(bitmap);
layout.addView(image);
setContentView(layout);
if
(scaleH*scale <=
0.4
){
small.setEnabled(
false
);
}
else
{
big.setEnabled(
true
);
}
big.setEnabled(
true
);
}
});
}
@Override
protected
void
onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super
.onSaveInstanceState(outState);
}
@Override
public
boolean
onKeyDown(
int
keyCode, KeyEvent event) {
System.out.println(
"keycode--------->"
+ keyCode);
if
(keyCode == KeyEvent.KEYCODE_BACK){
new
AlertDialog.Builder(
this
).setTitle(
"退出"
).setMessage(
"确定要退出吗?"
).setPositiveButton(
"确定"
,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
finish();
android.os.Process.killProcess(android.os.Process.myPid());
}
}).setNegativeButton(
"取消"
,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
}
}).show();
}
return
super
.onKeyDown(keyCode, event);
}
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图