a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 系統(tǒng) > Android > 正文

Android通過(guò)手勢(shì)實(shí)現(xiàn)的縮放處理實(shí)例代碼

2020-04-11 12:20:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

網(wǎng)絡(luò)上傳言HTC的HERO-ROM支持多點(diǎn)觸摸的論證大多源于瀏覽網(wǎng)頁(yè)和圖片時(shí),能像IPhone一樣通過(guò)手勢(shì)來(lái)控制頁(yè)面的大小。下面的例子是利用現(xiàn)有的API實(shí)現(xiàn)HERO瀏覽圖片和網(wǎng)頁(yè)的縮放功能。

主要原理是onTouchEvent事件中的參數(shù)MotionEvent,它有一個(gè)getSize()方法。在一個(gè)點(diǎn)的時(shí)候,該方法永遠(yuǎn)返回0,而在兩個(gè)觸電的時(shí)候,該方法則根據(jù)兩點(diǎn)相對(duì)位置變化而返回不同的值。我們只需計(jì)算出兩點(diǎn)之間的距離變化,距離的大小表明我們希望目標(biāo)變化的趨勢(shì)。而getX()和getY()方法則永遠(yuǎn)座落在兩觸點(diǎn)之間,這樣趨勢(shì)和目標(biāo)我們都有了。剩下的就是對(duì)目標(biāo)根據(jù)趨勢(shì)進(jìn)行放大或縮小即可。

復(fù)制代碼 代碼如下:

 /**
 * ...
 *
 * @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);

  }

 }

}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久全国免费视频 | 综合久久久久 | 国产精品视频导航 | 四影虎影www4hu23cmo | 天天摸夜夜操 | 亚洲 欧美 日韩 精品 | 欧美精品一区二区三区在线播放 | 91精品国产乱码久久久久久 | 久久爱9191 | 久久久久国产 | 国产区福利 | 日本不卡免费新一二三区 | 精品欧美一区二区三区 | 国产精品视频免费 | 国产精品久久久久久久久久久久久久久久 | 九九九色 | 久久国内精品 | 福利网站在线观看 | 日韩精品一区二区三区中文字幕 | av在线一区二区三区 | 99精品网站 | 亚洲欧美在线视频 | 青草精品 | 亚洲一区二区三区高清 | 国产精品久久久久久福利一牛影视 | 欧美精产国品一二三区 | 久久亚洲精品国产一区最新章节 | 99久久婷婷国产综合精品 | 国产精品理论片 | 中文字幕在线看片 | aaa日本高清在线播放免费观看 | 韩国三级中文字幕hd有奶水 | 精品国产一区二区三区成人影院 | 午夜久久久久 | 日韩福利 | 国产精品二区三区 | 国产高清在线精品一区二区三区 | 日韩视频在线一区二区 | 99精品热视频 | 日韩成人午夜电影 | 成人a在线视频免费观看 |