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'>php中文网 </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("https://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
本文由php中文网用户“Ty80”提供,原文地址:http://www.php.cn/java-article-374028.html
请勿转载~~~
学习php就上php中文网.
以上是安卓基础之悬浮按钮和状态栏通知的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

本文解释了用于构建分布式应用程序的Java的远程方法调用(RMI)。 它详细介绍了接口定义,实现,注册表设置和客户端调用,以解决网络问题和安全性等挑战。

本文详细介绍了用于网络通信的Java的套接字API,涵盖了客户服务器设置,数据处理和关键考虑因素,例如资源管理,错误处理和安全性。 它还探索了性能优化技术,我

本文详细介绍了创建自定义Java网络协议。 它涵盖协议定义(数据结构,框架,错误处理,版本控制),实现(使用插座),数据序列化和最佳实践(效率,安全性,维护


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

WebStorm Mac版
好用的JavaScript开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)