Android 放大鏡的實現

2021-07-05 11:45:25 字數 1879 閱讀 4838

本帖**:

package chroya.demo.magnifier;

import android.content.context;

import android.graphics.bitmap;

import android.graphics.bitmapfactory;

import android.graphics.bitmapshader;

import android.graphics.canvas;

import android.graphics.matrix;

import android.graphics.shader.tilemode;

import android.graphics.drawable.shapedrawable;

import android.graphics.drawable.shapes.ovalshape;

import android.view.motionevent;

import android.view.view;

/*** 放大鏡實現方式1

* @author chroya**/

public class shaderview extends view        

@override

public boolean ontouchevent(motionevent event)

@override

public void ondraw(canvas canvas) }

複製**

基本原理就是使用shapedrawable構造乙個圓形的drawable,然後它的paint的shader設定為將要放大的,然後就是簡單的位置移動問題了。放大鏡的半徑和放大倍數都可以在**裡面修改,**都有注釋,應該很好理解了。

不過,乙個問題如果只有一種解決方法的話,那未免有點令人沮喪,想玩點另類的都不行。

玩程式就得玩出個性,玩出激情。哈哈,廢話太多,切回正題。

再來看看放大鏡的另外一種實現吧 ^-^

package chroya.demo.magnifier;

import android.content.context;

import android.graphics.bitmap;

import android.graphics.bitmapfactory;

import android.graphics.canvas;

import android.graphics.matrix;

import android.graphics.path;

import android.graphics.path.direction;

import android.view.motionevent;

import android.view.view;

/*** 放大鏡實現方式2

* @author chroya**/

public class pathview extends view        

@override

public boolean ontouchevent(motionevent event)

@override

public void ondraw(canvas canvas) }

複製**

這裡使用的是path類,將canvas剪下出一塊圓形區域,在其上繪製放大的部分。

兩種方式的效果都一樣,如圖:

放大兩倍的效果。

放大三倍

貌似還缺點什麼,是吧? 嘿嘿,就是放大鏡外面缺個框。那玩意,我沒資源,所以懶得弄了,有興趣的自己加吧。

android放大鏡效果實現

public class shaderview extends view override public boolean ontouchevent motionevent event override public void ondraw canvas canvas 基本原理就是使用shapedra...

放大鏡 放大鏡應該怎麼選擇,有那些放大鏡

放大鏡是用以放大物體的凸透鏡,顯微鏡的雛形。通常用來觀察物體細節。放大鏡是焦距比眼的明視距離小得多的會聚透鏡。放大鏡按外表分類可以分為可攜式放大鏡 眼鏡式放大鏡和立式放大鏡。按使用人群分類,可分為老年人閱讀放大鏡 兒童放大鏡 戶外便攜放大鏡 專業鑑定測量放大鏡和醫用放大鏡等。台式放大鏡就是可以固定的...

HTML放大鏡實現

前天跟著b站的乙個老師敲了大概兩個小時左右,老師一直說很簡單,但是實現的步驟對於接觸js時間不太長,或者說連皮毛都不是特別懂的我來說,還是需要多多學習。模板是這個樣子,其中引數需要根據新增的不同設定不同值,根據自己所需要的頁面展示風格,也需要改動相應的margin position引數,總的來說就是...