diff --git a/app/src/main/java/com/qlh/crop/cropview/MainActivity.kt b/app/src/main/java/com/qlh/crop/cropview/MainActivity.kt index 831d16d..77807f7 100644 --- a/app/src/main/java/com/qlh/crop/cropview/MainActivity.kt +++ b/app/src/main/java/com/qlh/crop/cropview/MainActivity.kt @@ -3,6 +3,9 @@ package com.qlh.crop.cropview import android.graphics.BitmapFactory import android.os.Bundle import android.support.v7.app.AppCompatActivity +import android.view.ViewGroup +import android.widget.RelativeLayout +import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* @@ -12,43 +15,14 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - //rect() cirCle() } private fun cirCle(){ - circle_view.setSourceBitmap(BitmapFactory.decodeResource(resources,R.drawable.d)) - circle_view.setCropBitmapCallBack { + crop_view.setSourceBitmap(BitmapFactory.decodeResource(resources,R.drawable.d)) + crop_view.setCropBitmapCallBack { crop_img.setImageBitmap(it) + Toast.makeText(this,"裁剪完成",Toast.LENGTH_SHORT).show() } } - - private fun rect(){ - val b = BitmapFactory.decodeResource(resources,R.drawable.d) -// //图片尺寸 -// val pw=b.width -// val ph=b.height -// val vto = bg.viewTreeObserver -// vto.addOnPreDrawListener(object :ViewTreeObserver.OnPreDrawListener{ -// override fun onPreDraw(): Boolean { -// //TODO("not implemented") -// //imgView尺寸 -// val imgW = bg.width -// val imgH = bg.height -// //比例 -// val bx = imgW*1.0f/pw -// val bh = imgH*1.0f/ph -// //取最小值 -// val lp = RelativeLayout.LayoutParams((min(bx,bh)*pw).toInt(), (min(bx,bh)*ph).toInt()) -// lp.addRule(RelativeLayout.CENTER_IN_PARENT,RelativeLayout.TRUE) -// cut_rect.layoutParams = lp -// return true -// } -// }) - -// cut_rect.setCropBitmapCallBack { -// crop_img.setImageBitmap(it) -// } - } - } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4051930..fad720d 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -8,22 +8,24 @@ + * 本库目前只是简单的绘制和裁剪 + *
*/ public class CropView extends View { @@ -239,6 +243,11 @@ else if (POINT_STATE == 1) { return true; } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + /** * 初始化布局 * @@ -251,27 +260,9 @@ else if (POINT_STATE == 1) { @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); - - //总高和总宽需要综合考虑view的宽和高和图片的宽和高 - //但是由于异步机制,无法在onLayout之前获得偏移量,因此图片溢出改为消息提醒 - /* - if(imageHeight==0){ - VIEW_HEIGHT = this.getHeight(); - }else{ - if(imageHeight