android之组件5

 

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

常量

描述

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的宽高居中显示。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值