安卓基础之悬浮按钮和状态栏通知

1.打开网页

Uri uri = Uri.parse("http://www.php.cn");  Intent it = new Intent(Intent.ACTION_VIEW, uri);  startActivity(it);

2.获取网页内容

 public String posturl(String url){     InputStream is = null;     String result = "";     try{         HttpClient httpclient = new DefaultHttpClient();         HttpPost httppost = new HttpPost(url);         HttpResponse response = httpclient.execute(httppost);         HttpEntity entity = response.getEntity();         is = entity.getContent();     }catch(Exception e){         return "Fail to establish http connection!"+e.toString();     }     try{         BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"));         StringBuilder sb = new StringBuilder();         String line = null;         while ((line = reader.readLine()) != null) {             sb.append(line + "\n");         }         is.close();         result=sb.toString();     }catch(Exception e){         return "Fail to convert net stream!";     }     return result; }

3.添加超链接

textView1.setText(Html.fromHtml("<a href='http://www.php.cn'> </a>"));textView1.setMovementMethod(LinkMovementMethod.getInstance());

4。允许访问网络

<uses-permission android:name="android.permission.INTERNET" />

5。简单的消息框

new AlertDialog.Builder(this)   .setTitle("标题")    .setMessage("简单消息框")    .setPositiveButton("确定", null)     .show();

6。确定与取消对话框

new AlertDialog.Builder(this)      .setTitle("确认")     .setMessage("确定吗?")     .setPositiveButton("是", null)     .setNegativeButton("否", null)     .show();

7。带输入框的对话框

new AlertDialog.Builder(this)     .setTitle("请输入")     .setIcon(android.R.drawable.ic_dialog_info)     .setView(new EditText(this))     .setPositiveButton("确定", null)     .setNegativeButton("取消", null)     .show();

8。带单选框的对话框

 new AlertDialog.Builder(this)     .setTitle("请选择")     .setIcon(android.R.drawable.ic_dialog_info)                     .setSingleChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, 0,        new DialogInterface.OnClickListener() {                                             public void onClick(DialogInterface dialog, int which) {             dialog.dismiss();          }       }     )     .setNegativeButton("取消", null)     .show();

9。带多选框的对话框

new AlertDialog.Builder(this)   .setTitle("多选框")   .setMultiChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, null, null)   .setPositiveButton("确定", null)                   .setNegativeButton("取消", null)   .show();

10。带列表框的对话框

new AlertDialog.Builder(this)      .setTitle("列表框")   .setItems(new String[] {"列表项1","列表项2","列表项3"}, null)   .setNegativeButton("确定", null)   .show();

11。图片框

ImageView img = new ImageView(this);   img.setImageResource(R.drawable.ic_launcher);   new AlertDialog.Builder(this)   .setTitle("图片框")   .setView(img)   .setPositiveButton("确定", null)   .show();

12。弹出短暂提示框

public void alert(String txt){   Toast.makeText(MainActivity.this,txt, 1).show();  }

13。网址转码

 public String urlencode(String str) throws UnsupportedEncodingException{   return java.net.URLEncoder.encode(str, "utf-8");    }

14。网址解码

 public String urldecode(String str) throws UnsupportedEncodingException{   return java.net.URLDecoder.decode(str, "utf-8");    }

15。获取网页源码

//得到二进制数据       public String getDatas(String path) throws Exception{          // 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。           URL url = new URL(path);           // 每个 HttpURLConnection 实例都可用于生成单个请求,            //但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络           HttpURLConnection conn = (HttpURLConnection) url.openConnection();           //设置 URL 请求的方法            conn.setRequestMethod("GET");           //设置一个指定的超时值(以毫秒为单位),           //该值将在打开到此 URLConnection 引用的资源的通信链接时使用。           conn.setConnectTimeout(5 * 1000);          // conn.getInputStream()返回从此打开的连接读取的输入流           InputStream inStream = conn.getInputStream();// 通过输入流获取html数据            byte[] data = readInputStream(inStream);// 得到html的二进制数据          String html = new String(data);          return html;                  }      //读取输入流中的数据,返回字节数组byte[]        public byte[] readInputStream(InputStream inStream) throws Exception{          //此类实现了一个输出流,其中的数据被写入一个 byte 数组            ByteArrayOutputStream outStream = new ByteArrayOutputStream();           // 字节数组            byte[] buffer = new byte[1024];          int len = 0;          //从输入流中读取一定数量的字节,并将其存储在缓冲区数组buffer 中            while ((len = inStream.read(buffer)) != -1) {              // 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流               outStream.write(buffer, 0, len);           }           inStream.close();          //toByteArray()创建一个新分配的 byte 数组。            return outStream.toByteArray();       }

16。显示网络图片

public Bitmap returnBitMap(String url) {            URL myFileUrl = null;            Bitmap bitmap = null;            try {             myFileUrl = new URL(url);            } catch (MalformedURLException e) {             e.printStackTrace();            }            try {             HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();             conn.setDoInput(true);             conn.connect();             InputStream is = conn.getInputStream();             bitmap = BitmapFactory.decodeStream(is);             is.close();            } catch (IOException e) {             e.printStackTrace();            }            return bitmap;         }   ImageView imView = (ImageView) findViewById(R.id.pic1);    imView.setImageBitmap(returnBitMap("http://img.php.cn/upload/course/000/001/120/595af5fa9f34f845.png"));

17。按钮点击事件

//登录检测   Button button=(Button)findViewById(R.id.button1);         button.setOnClickListener(new OnClickListener(){       public void onClick(View v){        }    });  //登录检测

18。对话框监听事件

new AlertDialog.Builder(this)   .setTitle("亲,是否退出?")   .setPositiveButton("确定", new DialogInterface.OnClickListener() {   @Override   public void onClick(DialogInterface arg0, int arg1) {    // TODO Auto-generated method stub    alert("你点了确定");   }})         .setNegativeButton("取消",new DialogInterface.OnClickListener() {   @Override   public void onClick(DialogInterface dialog, int which) {    // TODO Auto-generated method stub    alert("你已经取消了");   }})  .show();   public void alert(String txt){   Toast.makeText(this,txt, 1).show();  }

19。安卓退出程序

private void showTips() {     AlertDialog alertDialog = new AlertDialog.Builder(this)           .setTitle("退出程序").setMessage("是否退出程序")               .setPositiveButton("确定", new DialogInterface.OnClickListener() {                     public void onClick(DialogInterface dialog, int which) {                       finish();                   }                 }).setNegativeButton("取消",                new DialogInterface.OnClickListener() {                      public void onClick(DialogInterface dialog, int which) {                         return;                     }               }).create(); // 创建对话框         alertDialog.show(); // 显示对话框      }   public boolean onKeyDown(int keyCode, KeyEvent event) {         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {            showTips();            return false;         }          return super.onKeyDown(keyCode, event);     }

20。安卓WebView组件

 WebView mWebView = new WebView(this);    mWebView.setWebViewClient(new webViewClient());//调用自身打开   mWebView.getSettings().setJavaScriptEnabled(true);   mWebView.loadUrl("http://www.php.cn/member/1.html");  setContentView(mWebView);  class webViewClient extends WebViewClient{            //重写shouldOverrideUrlLoading方法,使点击链接后不使用其他的浏览器打开。         @Override         public boolean shouldOverrideUrlLoading(WebView view, String url) {             view.loadUrl(url);             //如果不需要其他对点击链接事件的处理返回true,否则返回false             return true;         }                    }

21。无参数Activity跳转

Intent it = new Intent(Activity.Main.this, Activity2.class);startActivity(it);

22。向下一个Activity传递数据(使用Bundle和Intent.putExtras)

Intent it = new Intent(Activity.Main.this, Activity2.class);Bundle bundle=new Bundle();bundle.putString("name", "This is from MainActivity!");it.putExtras(bundle);       // it.putExtra(“test”, "shuju”);startActivity(it);            // startActivityForResult(it,REQUEST_CODE);

对于数据的获取可以采用:

Bundle bundle=getIntent().getExtras();String name=bundle.getString("name");

23。向上一个Activity返回结果(使用setResult,针对startActivityForResult(it,REQUEST_CODE)启动的Activity)

Intent intent=getIntent();Bundle bundle2=new Bundle();bundle2.putString("name", "This is from ShowMsg!");intent.putExtras(bundle2);setResult(RESULT_OK, intent);

24。回调上一个Activity的结果处理函数(onActivityResult)

@Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        // TODO Auto-generated method stub        super.onActivityResult(requestCode, resultCode, data);        if (requestCode==REQUEST_CODE){            if(resultCode==RESULT_CANCELED)                  setTitle("cancle");            else if (resultCode==RESULT_OK) {                 String temp=null;                 Bundle bundle=data.getExtras();                 if(bundle!=null)   temp=bundle.getString("name");                 setTitle(temp);            }        }    }

25。安卓定时器

 Timer timer = new Timer();    timer.schedule(task,10000,2000);         TimerTask task = new TimerTask(){              public void run() {              Message message = new Message();              message.what = 1;              handler.sendMessage(message);               }              };  Handler handler = new Handler(){           public void handleMessage(Message msg) {               switch (msg.what) {               case 1:                 alert("hear me?");                break;                }              super.handleMessage(msg);              }             };

26。安卓插入背景音乐

MediaPlayer mediaPlayer = new MediaPlayer();          Uri uri = Uri               .parse("http://www.php.cn/asset/1.mp3");    try {   mediaPlayer.setDataSource(Sound.this, uri);  } catch (IllegalArgumentException e) {   // TODO Auto-generated catch block   e.printStackTrace();  } catch (SecurityException e) {   // TODO Auto-generated catch block   e.printStackTrace();  } catch (IllegalStateException e) {   // TODO Auto-generated catch block   e.printStackTrace();  } catch (IOException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }   try {   mediaPlayer.prepare();  } catch (IllegalStateException e) {   // TODO Auto-generated catch block   e.printStackTrace();  } catch (IOException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }   mediaPlayer.start();

27。int与string互转1 如何将字串 String 转换成整数 int? A. 有两个方法:1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]);2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异. 2 如何将整数 int 转换成字串 String ? A. 有叁种方法:1.) String s = String.valueOf(i);2.) String s = Integer.toString(i); 3.) String s = "" + i; 注: Double, Float, Long 转成字串的方法大同小异.28。获取屏幕宽高

DisplayMetrics dm = getResources().getDisplayMetrics(); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels - 50;

29。图片拖动

private int screenWidth; private int screenHeight; private ImageView img1; private ImageView img2;img1 = (ImageView) findViewById(R.id.imageView1); img2 = (ImageView) findViewById(R.id.imageView2);DisplayMetrics dm = getResources().getDisplayMetrics(); screenWidth = dm.widthPixels; screenHeight = dm.heightPixels - 50;img1.setOnTouchListener(movingEventListener); img2.setOnTouchListener(movingEventListener);private OnTouchListener movingEventListener = new OnTouchListener() { int lastX, lastY; @Override public boolean onTouch(View v, MotionEvent event) {     switch (event.getAction()) {     case MotionEvent.ACTION_DOWN:         lastX = (int) event.getRawX();         lastY = (int) event.getRawY();         break;     case MotionEvent.ACTION_MOVE:         int dx = (int) event.getRawX() - lastX;         int dy = (int) event.getRawY() - lastY;        int left = v.getLeft() + dx;         int top = v.getTop() + dy;         int right = v.getRight() + dx;         int bottom = v.getBottom() + dy;         // 设置不能出界         if (left < 0) {             left = 0;             right = left + v.getWidth();         }        if (right > screenWidth) {             right = screenWidth;             left = right - v.getWidth();         }        if (top < 0) {             top = 0;             bottom = top + v.getHeight();         }        if (bottom > screenHeight) {             bottom = screenHeight;             top = bottom - v.getHeight();         }        v.layout(left, top, right, bottom);        lastX = (int) event.getRawX();         lastY = (int) event.getRawY();        break;     case MotionEvent.ACTION_UP:         break;     }     return true; } };

30。状态栏通知消息提示代码

 private void addNotificaction(int id) {   NotificationManager manager = (NotificationManager) this   .getSystemService(Context.NOTIFICATION_SERVICE);   // 创建一个Notification   Notification notification = new Notification();   // 设置显示在手机最上边的状态栏的图标   notification.icon = R.drawable.ic_launcher;   // 当当前的notification被放到状态栏上的时候,提示内容   notification.tickerText = "注意了,我被扔到状态栏了";       // 添加声音提示   notification.defaults=Notification.DEFAULT_SOUND;   // audioStreamType的值必须AudioManager中的值,代表着响铃的模式   notification.audioStreamType= android.media.AudioManager.ADJUST_LOWER;      //下边的两个方式可以添加音乐   //notification.sound = Uri.parse("http://www.php.cn/asset/1.mp3");    //notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");    Intent intent = new Intent(this, functions.class);   PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);   // 点击状态栏的图标出现的提示信息设置   notification.setLatestEventInfo(this, "内容提示:", "我就是一个测试文件", pendingIntent);   manager.notify(id, notification);     }

31。安卓弹出层【弹窗】代码

private void showPopUp(View v) {   LinearLayout layout = new LinearLayout(this);   layout.setBackgroundColor(Color.GRAY);   TextView tv = new TextView(this);   tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));   tv.setText("I'm a pop -----------------------------!");   tv.setTextColor(Color.WHITE);   layout.addView(tv);   PopupWindow popupWindow = new PopupWindow(layout,120,120);      popupWindow.setFocusable(true);   popupWindow.setOutsideTouchable(true);   popupWindow.setBackgroundDrawable(new BitmapDrawable());      int[] location = new int[2];   v.getLocationOnScreen(location);      popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popupWindow.getHeight());  }    showPopUp(LayoutInflater.from(getBaseContext()).inflate(R.layout.popview, null));

32。 安卓通过新的xml布局文件获取view对象

LayoutInflater.from(getBaseContext()).inflate(R.layout.popview, null);

33。悬浮功能所需要的权限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

34。添加悬浮按钮

 权限  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />  WindowManager wm=(WindowManager)getApplicationContext().getSystemService("window");  WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();  wmParams.type=2002;  //type是关键,这里的2002表示系统级窗口,你也可以试试2003。  wmParams.format=1;  wmParams.flags=40;  wmParams.width=40;  wmParams.height=40;  wm.addView(LayoutInflater.from(getBaseContext()).inflate(R.layout.popview, null), wmParams);//创建View

本文由用户“Ty80”提供,原文地址:http://www.php.cn/java-article-374028.html

请勿转载~~~

学习php就上.

以上就是安卓基础之悬浮按钮和状态栏通知的详细内容,更多请关注其它相关文章!

曾经拥有的不要忘记,难以得到的更要珍惜,

安卓基础之悬浮按钮和状态栏通知

相关文章:

你感兴趣的文章:

标签云: