网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

利用Android实现一个放大镜功能-创新互联

今天就跟大家聊聊有关利用Android实现一个放大镜功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站建设、朝阳网络推广、小程序制作、朝阳网络营销、朝阳企业策划、朝阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;成都创新互联公司为所有大学生创业者提供朝阳建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

源码分析

public class ShaderView extends View {
  private final Bitmap bitmap;
  private final ShapeDrawable drawable;
  // 放大镜的半径
  private static final int RADIUS = 80;
  // 放大倍数
  private static final int FACTOR = 3;
  private final Matrix matrix = new Matrix();
 
  public ShaderView(Context context) {
   super(context);
   Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.demo);
   bitmap = bmp;
   BitmapShader shader = new BitmapShader(Bitmap.createScaledBitmap(bmp,
   bmp.getWidth() * FACTOR, bmp.getHeight() * FACTOR, true), TileMode.CLAMP, TileMode.CLAMP);
 
   // 圆形的drawable
   drawable = new ShapeDrawable(new OvalShape());
   drawable.getPaint().setShader(shader);
   drawable.setBounds(0, 0, RADIUS * 2, RADIUS * 2);
 }
 
 @Override
 public boolean onTouchEvent(MotionEvent event) {
   final int x = (int) event.getX();
   final int y = (int) event.getY();
 
   // 这个位置表示的是,画shader的起始位置
   matrix.setTranslate(RADIUS - x * FACTOR, RADIUS - y * FACTOR);
   drawable.getPaint().getShader().setLocalMatrix(matrix);
 
   // bounds,就是那个圆的外切矩形
   drawable.setBounds(x - RADIUS, y - RADIUS, x + RADIUS, y + RADIUS);
   invalidate();
   return true;
 }
 
 @Override
 public void onDraw(Canvas canvas) {
   super.onDraw(canvas);
   canvas.drawBitmap(bitmap, 0, 0, null);
   drawable.draw(canvas);
 }
}

当前标题:利用Android实现一个放大镜功能-创新互联
转载来源:http://bjjierui.cn/article/dejdip.html

其他资讯