日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 一、概述ScaleGestureDetector這個(gè)類是專門(mén)用來(lái)檢測(cè)兩個(gè)手指在屏幕上做縮放的手勢(shì)用的,最簡(jiǎn)單的應(yīng)用就是用來(lái)縮放圖片或者縮放網(wǎng)頁(yè)。二、要求利用ScaleGestureDetector這個(gè)

 一、概述

ScaleGestureDetector這個(gè)類是專門(mén)用來(lái)檢測(cè)兩個(gè)手指在屏幕上做縮放的手勢(shì)用的,最簡(jiǎn)單的應(yīng)用就是用來(lái)縮放圖片或者縮放網(wǎng)頁(yè)。

二、要求

利用ScaleGestureDetector這個(gè)類實(shí)現(xiàn)圖片縮放。

三、實(shí)現(xiàn)

新建工程MyScale,修改main.xml文件,在里面添加一個(gè)Button和一個(gè)SurfaceView,如下:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

 

android:id="@+id/button"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="顯示圖片"

/>

 

android:id="@+id/surfaceview"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

/>

 

修改MyScaleActivity.java文件,主要是實(shí)現(xiàn)按鈕的監(jiān)聽(tīng)和定義一個(gè)類實(shí)現(xiàn)ScaleGestureDetector.OnScaleGestureListener接口:

package com.nan.scale;

import android.app.Activity;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Matrix;

import android.graphics.Rect;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.ScaleGestureDetector;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.View;

import android.widget.Button;

public class MyScaleActivity extends Activity

{

private Button mButton = null;

private SurfaceView mSurfaceView = null;

private SurfaceHolder mSurfaceHolder = null;

private ScaleGestureDetector mScaleGestureDetector = null;

private Bitmap mBitmap = null;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mSurfaceView = (SurfaceView)this.findViewById(R.id.surfaceview);

mSurfaceHolder = mSurfaceView.getHolder();

mScaleGestureDetector = new ScaleGestureDetector(this,new ScaleGestureListener());

mButton = (Button)this.findViewById(R.id.button);

//按鈕監(jiān)聽(tīng)

mButton.setOnClickListener(new View.OnClickListener()

{

@Override

public void onClick(View v)

{

// TODO Auto-generated method stub

mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mmm);

//鎖定整個(gè)SurfaceView

Canvas mCanvas = mSurfaceHolder.lockCanvas();

//畫(huà)圖

mCanvas.drawBitmap(mBitmap, 0f, 0f, null);

//繪制完成,提交修改

mSurfaceHolder.unlockCanvasAndPost(mCanvas);

//重新鎖一次

mSurfaceHolder.lockCanvas(new Rect(0, 0, 0, 0));

mSurfaceHolder.unlockCanvasAndPost(mCanvas);

}

});

}

@Override

public boolean onTouchEvent(MotionEvent event)

{

//返回給ScaleGestureDetector來(lái)處理

return mScaleGestureDetector.onTouchEvent(event);

}

public class ScaleGestureListener implements ScaleGestureDetector.OnScaleGestureListener

{

@Override

public boolean onScale(ScaleGestureDetector detector)

{

// TODO Auto-generated method stub

Matrix mMatrix = new Matrix();

//縮放比例

float scale = detector.getScaleFactor()/3;

mMatrix.setScale(scale, scale);

//鎖定整個(gè)SurfaceView

Canvas mCanvas = mSurfaceHolder.lockCanvas();

//清屏

mCanvas.drawColor(Color.BLACK);

//畫(huà)縮放后的圖

mCanvas.drawBitmap(mBitmap, mMatrix, null);

//繪制完成,提交修改

mSurfaceHolder.unlockCanvasAndPost(mCanvas);

//重新鎖一次

mSurfaceHolder.lockCanvas(new Rect(0, 0, 0, 0));

mSurfaceHolder.unlockCanvasAndPost(mCanvas);

return false;

}

@Override

public boolean onScaleBegin(ScaleGestureDetector detector)

{

// TODO Auto-generated method stub

//一定要返回true才會(huì)進(jìn)入onScale()這個(gè)函數(shù)

return true;

}

@Override

public void onScaleEnd(ScaleGestureDetector detector)

{

// TODO Auto-generated method stub

}

}

}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

其他電腦(比如安卓手機(jī)/平板電腦)的屏幕壞了,你可能想在安排維修之前緊急訪問(wèn)一些東西。你可以使用android的USB OTG功能(是的,幾乎每個(gè)android都支持這個(gè)功能,你可以將鼠標(biāo)和鍵盤(pán)連接到它)。

關(guān)鍵字: USB 鼠標(biāo) Android 樹(shù)莓派

北京 2025年6月11日 /美通社/ -- 近日,首屆"凌海御空?舟山新篇"清華未來(lái)立體通行挑戰(zhàn)賽總決賽在舟山群島圓滿落幕。智能算力服務(wù)商北京積算科技有限公司(以下簡(jiǎn)稱"積算科技&quo...

關(guān)鍵字: 大賽 無(wú)人機(jī) 模型 應(yīng)用開(kāi)發(fā)

Google 宣布與中國(guó) AR 科技公司 XREAL 達(dá)成深度戰(zhàn)略合作,聯(lián)合推出全球首款專為 Android XR 平臺(tái)打造的旗艦級(jí) AR 眼鏡 Project Aura。

關(guān)鍵字: Google XREAL Android XR眼鏡 AR

電力鴻蒙操作系統(tǒng)(OpenHarmony for Power)作為面向能源領(lǐng)域的專用物聯(lián)操作系統(tǒng),憑借其分布式架構(gòu)、統(tǒng)一物聯(lián)標(biāo)準(zhǔn)與安全可控特性,為電力行業(yè)智能化轉(zhuǎn)型提供了底層支撐。本文從開(kāi)發(fā)環(huán)境搭建、基礎(chǔ)語(yǔ)法掌握到復(fù)雜應(yīng)...

關(guān)鍵字: 電力鴻蒙 應(yīng)用開(kāi)發(fā)

繼停止維護(hù)AOSP開(kāi)源項(xiàng)目后,谷歌母公司Alphabet近日被曝在其安卓系統(tǒng)(Android)、Pixel手機(jī)以及Chrome瀏覽器等部門(mén)裁員數(shù)百人。這一舉措引發(fā)了業(yè)界的廣泛關(guān)注,也引發(fā)了對(duì)谷歌未來(lái)業(yè)務(wù)布局的諸多猜測(cè)。

關(guān)鍵字: 谷歌 AOSP Android 裁員

在本教程中,我們將使用Capacitor 6、Angular和TypeScript構(gòu)建一個(gè)Android應(yīng)用程序,該應(yīng)用程序通過(guò)串行端口連接到BleuIO USB加密狗。該應(yīng)用程序允許用戶直接從Android設(shè)備發(fā)送和接...

關(guān)鍵字: Android USB 電容器 BLE設(shè)備

早前媒體報(bào)道谷歌將停止維護(hù)Android開(kāi)源項(xiàng)目(AOSP),將Android開(kāi)發(fā)全面轉(zhuǎn)向內(nèi)部閉源分支,目前這一消息已經(jīng)得到谷歌官方確認(rèn)。

關(guān)鍵字: 谷歌 Android 開(kāi)源

本項(xiàng)目演示了如何通過(guò)OTG (on - go) USB在Android設(shè)備上使用BleuIO USB加密狗作為串行端口。使用電容器6和@adeunis/電容器-串行插件,我們建立串行連接,發(fā)送AT命令,并實(shí)時(shí)讀取響應(yīng)。該...

關(guān)鍵字: 電容器 Android 傳感器 微控制器 嵌入式系統(tǒng)

北京2025年3月7日 /美通社/ -- 3月11日,浪潮信息將面向全國(guó)元腦生態(tài)伙伴舉辦"元腦企智DeepSeek一體機(jī)生態(tài)伙伴推介體驗(yàn)會(huì)"?;顒?dòng)現(xiàn)場(chǎng),伙伴可深入了解元腦企智DeepSeek一體機(jī)的最...

關(guān)鍵字: EPS PSE 模型 應(yīng)用開(kāi)發(fā)
關(guān)閉