Home  >  Article  >  Java  >  Android Basics Floating Buttons and Status Bar Notifications

Android Basics Floating Buttons and Status Bar Notifications

PHP中文网
PHP中文网Original
2017-07-13 17:21:272084browse

1. Open the web page

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

2. Get the web page content

 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. Add hyperlink

textView1.setText(Html.fromHtml("<a href=&#39;http://www.php.cn&#39;>php中文网 </a>"));
textView1.setMovementMethod(LinkMovementMethod.getInstance());

4. Allow access to network

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

5. Simple Message Box

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

6. OK and Cancel Dialog

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

7. Dialog box with input box

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

8. Dialog with radio buttons

 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. Dialog box with multiple selection boxes

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

10. Dialog box with list box

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

11. Picture Box

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


12. A short prompt box pops up

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


13. URL transcoding

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

14. URL decoding

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


15. Get the web page source code

//得到二进制数据   
    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. Showing web pictures

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 click event

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

18. Dialog listening event

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. Android exit procedure

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. Android WebView component

 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 jump without parameters

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

22. Pass data to the next Activity (using Bundle and 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);

For data acquisition, you can use:

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

23. Return the result to the previous Activity (using setResult, for the Activity started by startActivityForResult(it, REQUEST_CODE))

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

24. Call back the result processing function of the previous 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. AndroidTimer

 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. Android insert background music

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. Conversion between int and string


1 How to convert the string String into an integer int?

A. There are two methods:

1). int i = Integer.parseInt([String]); or
i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue( );

Note: The methods for converting strings into Double, Float, and Long are similar.

2 How to convert integer into string?

A. There are three methods Method:

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

Note: The methods of converting Double, Float, and Long into strings are similar.

28. Get screen width and height

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

29. Image Drag

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. The status bar notification message prompts code

 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. Android pop-up layer [pop-up window] code

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&#39;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. Android obtains the view object through the new xml layout file

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

33. Permissions required for hover function

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

34. Add floating button

 权限  <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

This article is provided by php Chinese website user "Ty80", original address: http://www.php.cn/java-article-374028.html

Please do not reprint~~~

To learn php, go to php Chinese website.

The above is the detailed content of Android Basics Floating Buttons and Status Bar Notifications. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn