本帖**:
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引數,總的來說就是...