真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

GestureDetector、手勢(shì)、左右滑動(dòng)控制圖片大小

    GestureDetector手勢(shì),這個(gè)應(yīng)用很廣泛,也可以衍生初很多知識(shí)點(diǎn),我從基礎(chǔ)開(kāi)始寫(xiě)起,原來(lái)一直想學(xué)一些高含量的技術(shù),后來(lái)發(fā)現(xiàn)很多基礎(chǔ)知識(shí)點(diǎn)都沒(méi)完全理解,每當(dāng)遇到不明白的小知識(shí)點(diǎn)的時(shí)候還要上網(wǎng)查,用過(guò)一次兩次還記不住,好高騖遠(yuǎn),踏踏實(shí)實(shí)把每個(gè)知識(shí)點(diǎn)的所有角角落落的零碎知識(shí)整理一下,基礎(chǔ)扎實(shí)才會(huì)飛的更高;

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的故城網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

    下面把GestureDetector的生命周期代碼運(yùn)行一邊,看具體代碼:

public class MainActivity extends Activity implements OnGestureListener {

private GestureDetector gesture ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

gesture = new GestureDetector(this) ;

}

@Override

public boolean onTouchEvent(MotionEvent event) {

return gesture.onTouchEvent(event) ;

}

@Override

public boolean onDown(MotionEvent arg0) {

System.out.println("******===>onDowm");

return false;

}

@Override

public boolean onFling(MotionEvent event1, MotionEvent event2, float x,

float y) {

System.out.println("******===>onFling");

return false;

}

@Override

public void onLongPress(MotionEvent arg0) {

System.out.println("******===>onLongPress");

}

@Override

public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,

float arg3) {

System.out.println("******===>onScroll");

return false;

}

@Override

public void onShowPress(MotionEvent arg0) {

System.out.println("******===>onShowPress");

}

@Override

public boolean onSingleTapUp(MotionEvent arg0) {

System.out.println("******===>onSingleTapUp");

return false;

}

}

    運(yùn)行之后經(jīng)過(guò)測(cè)試可以發(fā)現(xiàn):當(dāng)用戶按下的時(shí)候會(huì)首先執(zhí)行onDown方法,onSingleTapUp是點(diǎn)擊一下之后馬上抬起按鈕所觸動(dòng)的方法,onShowPress是點(diǎn)擊之后所執(zhí)行的方法(點(diǎn)擊之后手機(jī)不挪動(dòng));onLongPress是點(diǎn)擊之后過(guò)段時(shí)間所執(zhí)行的方法,是在手指不拖動(dòng)的前提之下,如果手指不挪動(dòng),執(zhí)行順序是:onDown--》onShowPrsss--》onLongPress。onScorll是手指滾動(dòng)的時(shí)候所觸發(fā)的方法,onFling是拖過(guò)多觸發(fā)的方法,其中的參數(shù)就是拖過(guò)的x個(gè)y的值得變化,手機(jī)點(diǎn)擊屏幕之后從屏幕的開(kāi)始拖出屏幕所觸發(fā)的方法順序是:onDown--》onScorll--》onFling

    下面寫(xiě)一個(gè)關(guān)于手勢(shì)左右滑動(dòng)動(dòng)態(tài)控制圖片大小的demo,直接上代碼,有詳細(xì)注釋    

public class MainActivity extends Activity implements OnGestureListener {

private GestureDetector gesture;

private ImageView p_w_picpath;

private int width, height;// 寬和高

private Bitmap bitmap;// 初始化圖片資源

private Matrix matrix;

private float currentScale = 1;//記錄縮放比例

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

p_w_picpath = (ImageView) findViewById(R.id.p_w_picpath);

gesture = new GestureDetector(this);

matrix = new Matrix();

bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.one);

width = bitmap.getWidth() ;

height = bitmap.getHeight() ;

// p_w_picpath.setImageBitmap(bitmap);

p_w_picpath.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.one));

}

@Override

public boolean onTouchEvent(MotionEvent event) {

// 把觸摸時(shí)間交給GestureDetector

return gesture.onTouchEvent(event);

}

@Override

public boolean onDown(MotionEvent arg0) {

return false;

}

@Override

public boolean onFling(MotionEvent event1, MotionEvent event2, float x,

float y) {

//判斷橫向的挪動(dòng)速度

x = x > 4000 ? 4000 : x;

x = x < -4000 ? -4000 : x;

currentScale += currentScale * x / 4000.0f;

// 保證currentScale不會(huì)等于0

currentScale = currentScale > 0.01 ? currentScale : 0.01f;

matrix.reset(); //重置matrix

//縮放matrix

matrix.setScale(currentScale, currentScale, 160, 200);

BitmapDrawable tmp = (BitmapDrawable) p_w_picpath.getDrawable() ;

//如果還沒(méi)回收則強(qiáng)制回收

if(!tmp.getBitmap().isRecycled()){

tmp.getBitmap().recycle() ; 

}

//根據(jù)原始位圖和matrix進(jìn)行創(chuàng)建新圖片

Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true) ;

p_w_picpath.setImageBitmap(bitmap2); 

return true ;

}

@Override

public void onLongPress(MotionEvent arg0) {

}

@Override

public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,

float arg3) {

return false;

}

@Override

public void onShowPress(MotionEvent arg0) {

}

@Override

public boolean onSingleTapUp(MotionEvent arg0) {

return false;

}

}

xml:

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

   

       android:id="@+id/p_w_picpath"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_centerInParent="true" />


當(dāng)前標(biāo)題:GestureDetector、手勢(shì)、左右滑動(dòng)控制圖片大小
文章位置:http://weahome.cn/article/ihgsgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部