gpt4 book ai didi

Android通过手势实现的缩放处理实例代码

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Android通过手势实现的缩放处理实例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

网络上传言HTC的HERO-ROM支持多点触摸的论证大多源于浏览网页和图片时,能像IPhone一样通过手势来控制页面的大小。下面的例子是利用现有的API实现HERO浏览图片和网页的缩放功能.

主要原理是onTouchEvent事件中的参数MotionEvent,它有一个getSize()方法。在一个点的时候,该方法永远返回0,而在两个触电的时候,该方法则根据两点相对位置变化而返回不同的值。我们只需计算出两点之间的距离变化,距离的大小表明我们希望目标变化的趋势。而getX()和getY()方法则永远座落在两触点之间,这样趋势和目标我们都有了。剩下的就是对目标根据趋势进行放大或缩小即可.

复制代码 代码如下:

 /**  * ...  *  * @author vlinux  *  */ public class MultiTouchTestActivity extends Activity {  /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   // setContentView(R.layout.main);   View view = new MultiTouchView(this);   setContentView(view);  } 。

  。

 class MultiTouchView extends View { 。

  private float x1;   private float y1;   private float x2;   private float y2,

  public MultiTouchView(Context context) {    super(context);    // TODO Auto-generated constructor stub   } 。

  @Override   public boolean onTouchEvent(MotionEvent event) {    // TODO Auto-generated method stub 。

   float size = event.getSize(),

   int szi = (int) size;    int dxi = szi >> 12;    int dyit = ((1 << 12) - 1);    int dyi = szi & dyit,

   DisplayMetrics metrics = getResources().getDisplayMetrics();    float dx = metrics.widthPixels * dxi / (float) dyit;    float dy = metrics.heightPixels * dyi / (float) dyit,

   x1 = event.getX();    y1 = event.getY(),

   x2 = x1 + dx;    y2 = y1 + dy,

   invalidate(),

   return true;   } 。

  @Override   protected void onDraw(Canvas canvas) {    // TODO Auto-generated method stub    super.onDraw(canvas),

   float r = (float) Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2)      * (y1 - y2)) / 2;    r = 50 >= r ? 50 : r,

   Paint paint = new Paint();    paint.setColor(Color.BLUE);    canvas.drawCircle(x1, y1, r, paint),

  } 。

 } 。

} 。

  。

最后此篇关于Android通过手势实现的缩放处理实例代码的文章就讲到这里了,如果你想了解更多关于Android通过手势实现的缩放处理实例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com