<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了android拖拽框,裁剪出圖片的具體程式碼,供大家參考,具體內容如下
import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.RelativeLayout; import eebochina.com.testsomething.R; public class DragTakePhoto extends AppCompatActivity implements View.OnTouchListener { ImageView takePhoto; ImageView takeImage; Button mButton; static final String tag = "takePhoto"; RelativeLayout.LayoutParams mLayoutParams; int left, top, bottom, right; int x, y; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_drag_take_photo); takePhoto = (ImageView) findViewById(R.id.take_layout); takeImage = (ImageView) findViewById(R.id.take_image); mButton = (Button) findViewById(R.id.take_crop); takePhoto.setOnTouchListener(this); takePhoto.post(new Runnable() { @Override public void run() { Log.d(tag, "" + takePhoto.getX() + " ," + takePhoto.getY() + " :" + takePhoto.getPivotX() + " " + takePhoto.getPivotY()); } }); mLayoutParams = (RelativeLayout.LayoutParams) takePhoto.getLayoutParams(); final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.take); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { float wd = (bitmap.getWidth() * 10000 / takeImage.getWidth()) / 10000f; float hd = (bitmap.getHeight() * 10000 / takeImage.getHeight()) / 10000f; Bitmap bitmap1 = Bitmap.createBitmap(bitmap, (int) (takePhoto.getX() * wd), (int) (takePhoto.getY() * hd), (int) (takePhoto.getWidth() * wd), (int) (takePhoto.getHeight() * hd)); takePhoto.setImageBitmap(bitmap1); } }); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) takeImage.getLayoutParams(); left = layoutParams.leftMargin; top = layoutParams.topMargin; right = takeImage.getWidth() - left - takePhoto.getWidth(); bottom = takeImage.getHeight() - top - takePhoto.getHeight(); } @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: x = (int) motionEvent.getRawX() - mLayoutParams.leftMargin; y = (int) motionEvent.getRawY() - mLayoutParams.topMargin; break; case MotionEvent.ACTION_MOVE: int movex = (int) (motionEvent.getRawX() - x); int movey = (int) (motionEvent.getRawY() - y); Log.d(tag, "x:" + movex + " y:" + movey); if (movex < left) movex = left; if (movey < top) movey = top; if (movex > right) movex = right; if (movey > bottom) movey = bottom; mLayoutParams.leftMargin = movex; mLayoutParams.topMargin = movey; takePhoto.setLayoutParams(mLayoutParams); break; } takePhoto.invalidate(); return true; } }
佈局檔案
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="eebochina.com.testsomething.dragTake.DragTakePhoto"> <ImageView android:id="@+id/take_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/take" android:layout_marginBottom="50dp" /> <ImageView android:id="@+id/take_layout" android:layout_width="200dp" android:layout_height="40dp" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:background="@android:color/holo_blue_dark" /> <Button android:id="@+id/take_crop" android:layout_width="200dp" android:layout_height="40dp" android:background="@android:color/holo_blue_dark" android:text="裁剪" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" /> </RelativeLayout>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45