android ongesturelistener绑定控件,Android FrameLayout OnGestureListener手势操作

publicclassMyListView extends LinearLayout implements OnGestureListener {privateGestureDetector mGestureDetector;privateListView mListView;publicMyListView(Context context) {

super(context);

mGestureDetector=newGestureDetector(this);

mListView=newListView(context);

String[] items=createStrings();

mListView.setAdapter(newArrayAdapter(context,

android.R.layout.simple_list_item_single_choice, items));

mListView.setCacheColorHint(Color.TRANSPARENT);

mListView.setScrollBarStyle(SCROLLBARS_OUTSIDE_INSET);

mListView.setOnItemClickListener(newOnItemClickListener() {

@OverridepublicvoidonItemClick(AdapterView>arg0, View arg1,intarg2,longarg3) {

Log.i("info","click");

}

});this.addView(mListView,newLinearLayout.LayoutParams(350, LayoutParams.FILL_PARENT));

}

@Overridepublicboolean onDown(MotionEvent arg0) {returnfalse;

}

@Overridepublicboolean onFling(MotionEvent e1, MotionEvent e2,floatvelocityX,floatvelocityY) {returntrue;

}

@OverridepublicvoidonLongPress(MotionEvent e) {//empty}

@Overridepublicboolean onScroll(MotionEvent e1, MotionEvent e2,floatdistanceX,floatdistanceY) {intscrollWidth=mListView.getWidth()-this.getWidth();if((this.getScrollX()>=0)&&(this.getScrollX()<=scrollWidth)&&(scrollWidth>0)) {intmoveX=(int)distanceX;if(((moveX+this.getScrollX())>=0)&&((Math.abs(moveX)+Math.abs(this.getScrollX()))<=scrollWidth)) {this.scrollBy(moveX,0);

}else{if(distanceX>=0) {this.scrollBy(scrollWidth-Math.max(Math.abs(moveX), Math.abs(this.getScrollX())),0);

}else{this.scrollBy(-Math.min(Math.abs(moveX), Math.abs(this.getScrollX())),0);

}

}

}returntrue;

}

@OverridepublicvoidonShowPress(MotionEvent e) {//empty}

@Overridepublicboolean onSingleTapUp(MotionEvent e) {returnfalse;

}

@Overridepublicboolean dispatchTouchEvent(MotionEvent ev){

mGestureDetector.onTouchEvent(ev);

super.dispatchTouchEvent(ev);returntrue;

}privateString[] createStrings() {returnnewString[] {"Abbaye de Belloc","Abbaye du Mont des Cats","Abertam","Abondance","Ackawi","Acorn","Adelost","Affidelice au Chablis","Afuega'l Pitu","Airag","Airedale","Aisy Cendre","Allgauer Emmentaler","Alverca","Ambert","American Cheese","Ami du Chambertin","Anejo Enchilado","Anneau du Vic-Bilh","Anthoriro","Appenzell","Aragon","Ardi Gasna","Ardrahan","Armenian String","Aromes au Gene de Marc","Asadero","Asiago","Aubisque Pyrenees","Autun","Avaxtskyr","Baby Swiss","Babybel","Baguette Laonnaise","Bakers","Baladi","Balaton","Bandal","Banon","Barry's Bay Cheddar","Basing","Basket Cheese","Bath Cheese","Bavarian Bergkase","Baylough","Beaufort","Beauvoorde","Beenleigh Blue","Beer Cheese","Bel Paese","Bergader","Bergere Bleue","Berkswell","Beyaz Peynir","Bierkase","Bishop Kennedy","Blarney","Bleu d'Auvergne","Bleu de Gex","Bleu de Laqueuille","Bleu de Septmoncel","Bleu Des Causses","Blue","Blue Castello","Blue Rathgore","Blue Vein (Australian)","Blue Vein Cheeses","Bocconcini","Bocconcini (Australian)","Boeren Leidenkaas","Bonchester","Bosworth","Bougon","Boule Du Roves","Boulette d'Avesnes","Boursault","Boursin","Bouyssou","Bra","Braudostur","Breakfast Cheese","Brebis du Lavort","Brebis du Lochois","Brebis du Puyfaucon","Bresse Bleu","Brick","Brie","Brie de Meaux","Brie de Melun","Brillat-Savarin","Brin","Brin d' Amour","Brin d'Amour","Brinza (Burduf Brinza)","Briquette de Brebis","Briquette du Forez","Broccio","Broccio Demi-Affine","Brousse du Rove","Bruder Basil","Brusselae Kaas (Fromage de Bruxelles)","Bryndza","Buchette d'Anjou","Buffalo","Burgos","Butte","Butterkase","Button (Innes)","Buxton Blue","Cabecou","Caboc","Cabrales","Cachaille","Caciocavallo","Caciotta"};    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值