自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 自定义View实现单击,双击效果

自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击事件, 单击, 双击, 三击, 都可以处理   核心代码如下:  

2016-08-29 14:50:15 730

原创 十进制与各进制之间的转换

public class trans { public static void main(String[] args) { toHex(60);//输出3C } //十进制转换为二进制 public static void toBin(int num) { trans(num,1,1); }

2016-08-28 17:52:08 179

原创 Java实现生产者与消费者

生产者与消费者的线程实现问题分析可知:问题含有产品对象,产品池对象,消费者,生产者对象 产品对象 public class Product { int id; String name; Product(){} Product(int id,String name){ this.name=name; this.id=id; } public int getId() { r

2016-08-28 15:48:59 597

原创 Service的onStartCommand()返回的三个参数的意义

在Android开发中,调用Context的startService方法启动Service的生命周期时,如果Android面临内存匮乏,可能会销毁掉你当前运行的Service,然后待内存充足的时候可以重新创建Service,Service被Android系统强制销毁并再次重建的行为依赖于Service中onStartCommand方法的返回值。 而Service onStartCommand方法

2016-08-20 13:42:31 897

转载 android代码访问APN数据

无论是移动、联通还是电信,都至少提供了两种类型的的APN:WAP方式和NET方式。其中NET方式跟WIFI方式一样,无需任何设置,可自由访问所有类型网站,而WAP方式,需要手机先设置代理服务器和端口号等信息,并且只能访问HTTP协议类型的网站。 1) 移动的WAP名称是CMWAP,NET名称是CMNET; 2) 联通的WAP名称是UNIWAP,NET名称是UNINET;联通3G的WAP

2016-08-20 13:00:02 4094

原创 android属性动画2

1:使用xml文件创建属性动画 首先在res下建立animator文件夹,然后建立res/animator/scalex.xml objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"       android:duration="1000"       android:prope

2016-08-20 09:59:09 347

原创 android动画之属性动画1

1:安卓中的动画简述 android中的几种动画:View Animation (补间动画);Drawable Animation(帧动画); Property Animation(属性动画) 1.1:帧动画的简单实用 (1):在res/anim/...xml文件下定义xml文件 xml version="1.0" encoding="utf-8"?>       根标签

2016-08-20 09:12:31 421

转载 touch事件的分发机制

Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup、View、Activity。继承ViewGroup的大多是容器控件,如LinearLa

2016-08-19 13:32:49 333

原创 横竖屏切换的生命周期

1、新建一个Activity,并把各个生命周期打印出来 2、运行Activity,得到如下信息 onCreate--> onStart--> onResume--> 3、按crtl+f12切换成横屏时 onSaveInstanceState--> onPause--> onStop--> onDestroy--> onCreate--> onStart-->

2016-08-19 13:29:13 342

原创 Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()调用

onsaveinstancestate()的特征

2016-08-05 17:41:35 282

转载 Java,android面试题列举

面试题列举

2016-08-04 20:22:16 1178

原创 求一个数组的秩 Java实现

求一个数组中每个元素之前小于该元素的个数(秩)

2016-08-04 18:59:44 2438

原创 n皇后问题求解 java

请设计一种算法,解决著名的n皇后问题。这里的n皇后问题指在一个nxn的棋盘上放置n个棋子,使得每行每列和每条对角线上都只有一个棋子,求其摆放的方法数。 给定一个int n,请返回方法数,保证n小于等于10

2016-08-04 08:45:45 422

android源码连连看

private void init() { config=new GameConf(8, 9, 1, 10, 100000, this); gameView=(GameView) findViewById(R.id.gameview); timeTextView=(TextView) findViewById(R.id.timeText); startButton=(Button) findViewById(R.id.startButton); dis=soundPool.load(this, R.raw.dis, 1); gameSrvice=new GameServiceImpl(config); gameView.setGameSrvice(gameSrvice); startButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { gameView.startGame(); } }); gameView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(isPlaying) { return false; } if(event.getAction()==MotionEvent.ACTION_DOWN) { gameViewTouchDown(event); } if(event.getAction()==MotionEvent.ACTION_UP) { gameViewTouchUp(event); } return true; } }); loseDialog=new AlertDialog.Builder(this); loseDialog.setTitle("Lost"); loseDialog.setMessage("游戏失败了"); loseDialog.setIcon(R.drawable.lost); loseDialog.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { startGame(config.ENDTIME); } }); sucessDialog=new AlertDialog.Builder(this); sucessDialog.setTitle("Sucess"); sucessDialog.setMessage("游戏成功了"); sucessDialog.setIcon(R.drawable.success); sucessDialog.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { startGame(config.ENDTIME); } }); } @Override protected void onPause() { stopTimer(); super.onPause(); } @Override protected void onResume() { // TODO Auto-generated method stub if(isPlaying) { startGame(gameTime); } super.onResume(); } private void stopTimer() { timer.cancel();timer=null; } private void startGame(int endtime) { if(this.timer!=null) { stopTimer(); } gameTime=endtime; if(gameTime==GameConf.ENDTIME) { gameView.startGame(); } isPlaying=true; timer=new Timer(); timer.schedule(new TimerTask() { @Override public void run() { handler.sendEmptyMessage(0x123); } }, 1000); selected=null; } private void gameViewTouchUp(MotionEvent event) { } private void gameViewTouchDown(MotionEvent event) { Piece [][] pieces=gameSrvice.getPiece(); float x=event.getX(); float y=event.getY(); Piece piece=gameSrvice.findPiece(x, y); if(piece==null) { return; } gameView.setSelectedPiece(piece); if(selected==null) { selected=piece; gameView.postInvalidate(); return; } else { LinkInfo linkInfo=gameSrvice.link(selected, piece); if(linkInfo==null) { selected=piece; gameView.postInvalidate(); } else { gameView.setLinkInfo(linkInfo); gameView.setSelectedPiece(null); gameView.postInvalidate(); pieces[piece.getIndexX()][piece.getIndexY()]=null; pieces[selected.getIndexX()][selected.getIndexY()]=null; this.selected=null; soundPool.play(dis,1, 1, 0, 0, 1); if(!gameSrvice.hasPiece()) { sucessDialog.show(); stopTimer();isPlaying=false; } } } }

2015-08-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除