android之组件5

来源:互联网 发布:lcd1602编程 编辑:程序博客网 时间:2024/05/16 11:31
 

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 stubsuper.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

常量

描述

matrix

0

用矩阵来绘图

fitXY

1

拉伸图片(不按比例)以填充View的宽高

fitStart

2

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边

fitCenter

3

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间

fitEnd

4

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边

center

5

按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示

centerCrop

6

按比例放大原图直至等于某边View的宽高显示。

centerInside

7

当原图宽高或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。

(译者注:设置图片的填充方式。)

原创粉丝点击