>  기사  >  Java  >  Android 기본 사항 부동 버튼 및 상태 표시줄 알림

Android 기본 사항 부동 버튼 및 상태 표시줄 알림

PHP中文网
PHP中文网원래의
2017-07-13 17:21:272140검색

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

textView1.setText(Html.fromHtml("<a href=&#39;http://www.php.cn&#39;>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. URL 트랜스코딩

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

14. URL 디코딩

 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. Android 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. 매개변수 없는 활동 점프

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

22. 데이터를 다음 활동으로 전달합니다(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. 결과를 이전 활동으로 반환합니다(startActivityForResult(it, REQUEST_CODE)에 의해 시작된 활동의 경우 setResult 사용)

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

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 및 문자열 변환


1 문자열을 정수로 변환하는 방법

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

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

참고: 문자열을 Double, Float 및 Long으로 변환하는 방법은 비슷합니다.

2 정수를 문자열로 변환하는 방법

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&#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는 새로운 xml 레이아웃 파일

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 중국어 웹사이트로 가세요.

위 내용은 Android 기본 사항 부동 버튼 및 상태 표시줄 알림의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.