接上一篇文章:Android實(shí)現(xiàn)圖片區(qū)域裁剪功能
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括太白網(wǎng)站建設(shè)、太白網(wǎng)站制作、太白網(wǎng)頁(yè)制作以及太白網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,太白網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到太白省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!上一篇文章提及了通過(guò)調(diào)用系統(tǒng)相冊(cè)或拍照來(lái)實(shí)現(xiàn)圖片的縮放\裁剪。不過(guò)這對(duì)于筆者項(xiàng)目的要求同樣不適合,筆者需要的是通過(guò)對(duì)手機(jī)屏幕整個(gè)進(jìn)行一個(gè)截圖,并對(duì)這個(gè)截圖進(jìn)行裁剪操作。
依靠系統(tǒng)功能確實(shí)可以實(shí)現(xiàn)圖片的裁剪,但是不夠靈活。這里筆者提供一種較為靈活的做法。
但是這種做法的用戶(hù)體驗(yàn)沒(méi)有上篇文章的好,至于使用何種方法,讀者應(yīng)該自己衡量。
同樣,我們先看實(shí)際效果圖。
這里展示的是筆者項(xiàng)目的一小部分(閱讀器):
我們點(diǎn)擊左下角的剪切按鈕
我們通過(guò)紅色邊框的四個(gè)角來(lái)控制裁剪的大小,移動(dòng)紅色框體來(lái)控制裁剪的位置區(qū)域。
接下來(lái)我們看看源碼的實(shí)現(xiàn):
首先點(diǎn)擊剪切按鈕的時(shí)候,我們應(yīng)該生成一個(gè)Bitmap對(duì)象,傳遞給另一個(gè)Activty處理
具體做法如下:
cutP.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //將一些按鈕隱藏 cutP.setVisibility(View.INVISIBLE); mTopBarSwitcher.setVisibility(View.INVISIBLE); mPageSlider.setVisibility(View.INVISIBLE); back.setVisibility(View.INVISIBLE); mPageNumberView.setVisibility(View.INVISIBLE); View view = MuPDFActivity.this.getWindow().getDecorView(); if (false == view.isDrawingCacheEnabled()) { view.setDrawingCacheEnabled(true); } Bitmap bitmap = view.getDrawingCache(); ImageView imgv = new ImageView(MuPDFActivity.this); imgv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT-200)); imgv.setImageBitmap(bitmap); backBitmap = bitmap; //傳遞給另一個(gè)Activity進(jìn)行裁剪 Intent intent = new Intent(); intent.setClass(MuPDFActivity.this, CutActivity.class); startActivity(intent); } });