ImageView
触摸截图(通过点击图片来实现截图,就像在淘宝上买衣服,你想放大,用鼠标点击那,旁边的一个框内会出现鼠标周围的截图)
但是有两处错误:1、如果鼠标点击到图片的外面,就会报错
2、有时候点击图片出现的截图和点击处有些偏差(算法有些问题,如果谁能解决,请留言教教我哈)
编写image.xml文件:
<ImageView
android:id="@+id/img1"
android:layout_width="fill_parent"
android:layout_height="300dp"
android:background="#cccccc"
android:src="@drawable/a" />
<ImageView
android:id="@+id/img2"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#cccccc"
android:scaleType="fitStart" 按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在view的左边
android:layout_marginTop="20dp"
/>
编写java代码:
public class ImageViewDemo extends Activity implements OnTouchListener {//触摸事件
ImageView imageView1, imageView2;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.image);
findViews();
}
private void findViews() {
imageView1 = (ImageView) findViewById(R.id.img1);
imageView2 = (ImageView) findViewById(R.id.img2);
imageView1.setOnTouchListener(this);
}
//覆盖了触摸事件的方法
public boolean onTouch(View v, MotionEvent event) {
//做一个比例的缩放 (这是我所以用图片的上和宽),如果不按这个比例计算可能会失桢
float scale = 412 / 320;
//算点击处坐标
int x = (int) (event.getX() * scale);
int y = (int) (event.getY() * scale);
//在布局文件中设定的 底下的那张图长和宽都是100
int width = (int) (100 * scale);
int height = (int) (100 * scale);
//截取图片
BitmapDrawable bitmapDrawable = (BitmapDrawable) imageView1.getDrawable();
imageView2.setImageBitmap(Bitmap.createBitmap(bitmapDrawable.getBitmap(),
x,y, width, height));
return false;
}
}
控制为了使图片适合 ImageView 的大小,应该如何变更图片大小或移动图片。
一定是下列常量之一:
android:scaleType |
(译者注:设置图片的填充方式。) |