編輯:關於Android編程
第一行代碼Android學習:第十部分主要涉及到WebView、Http協議訪問網絡、解析JSON格式數據、LocationManager的基本用法
1.DYHDM_10_00NetworkTest
activity_main.xml
MainActivity.java
package com.example.dyhdm_10_00networktest;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private WebView webView;
public static final int SHOW_RESPONSE = 0;
private Button sendResquest;
private TextView responseText;
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case SHOW_RESPONSE:
String response = (String) msg.obj;
responseText.setText(response);
// parseJSONWithJSONObject(response);
parseJSONWithGSON(response);
break;
default:
break;
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* webView = (WebView) findViewById(R.id.wv); // 讓WebView支持JavaScript腳本
* webView.getSettings().setJavaScriptEnabled(true);
* webView.setWebViewClient(new WebViewClient() { //
* 當需要從一個網頁跳到另一個網頁,目標網頁仍在當前WebView中打開
*
* @Override public boolean shouldOverrideUrlLoading(WebView view,
* String url) { view.loadUrl(url); return true;//
* 當前WebView可以處理打開新網頁的請求,不借助系統浏覽器 } });
* webView.loadUrl("http://www.baidu.com");
*/
sendResquest = (Button) findViewById(R.id.bt_send_request);
responseText = (TextView) findViewById(R.id.tv_response);
sendResquest.setOnClickListener(this);
}
/**
* TODO 解析JSON數據,用GSON
*
* @throw
* @return void
*/
protected void parseJSONWithGSON(String response) {
Gson gson = new Gson();
List
2.DYHDM_11_00LocationTest
AndroidManifest.xmlactivity_main.xml
MainActivity.java
package com.example.dyhdm_11_00locationtest;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView postionTextView;
private LocationManager locationManager;
private String provider;
LocationListener locationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
showLocation(location);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
postionTextView = (TextView) findViewById(R.id.position_test_view);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// 獲取所有可用的位置提供器
List providderList = locationManager.getProviders(true);
if (providderList.contains(LocationManager.GPS_PROVIDER)) {
provider = LocationManager.GPS_PROVIDER;
} else if (providderList.contains(LocationManager.NETWORK_PROVIDER)) {
provider = LocationManager.NETWORK_PROVIDER;
} else {
// 當沒有可用的位置提供器時,彈出Toast提示用戶
Toast.makeText(this, "No location provider to use",
Toast.LENGTH_SHORT).show();
return;
}
Location location = locationManager.getLastKnownLocation(provider);
if (location != null) {
showLocation(location);
}
// 四個參數
// 第一個:位置提供器的類型
// 第二個:監聽位置變化的事件間隔
// 第三個:移動距離
// 第四個:監聽器
locationManager.requestLocationUpdates(provider, 5000, 1,
locationListener);
}
/**
* TODO 顯示當前位置
*
* @throw
* @return void
*/
private void showLocation(Location location) {
String currentPosition = "latitude is " + location.getLatitude() + "\n"
+ "longitude is " + location.getLongitude();
postionTextView.setText(currentPosition);
}
/**
* 重載方法
*/
@Override
protected void onDestroy() {
super.onDestroy();
if (locationManager != null) {
// 關閉程序時將監聽器移除
locationManager.removeUpdates(locationListener);
}
}
}
Android開發之自定義View(視圖)用法詳解
本文實例講述了Android開發之自定義View(視圖)用法。分享給大家供大家參考,具體如下:View類是Android的一個超類,這個類幾乎包含了所有的屏幕類型。每一個
android開發:仿照微信 發送本人位置(基於百度地圖)(前篇)
首先先上一張開發效果圖:效果是模仿微信的發送位置,項目的框架上采用mvp模式,並用了我自己寫的一套lib,地址ndileber首先界面上的開發,我簡單粘貼代碼(笑)act
匯總Android視頻錄制中常見問題
本文分享自己在視頻錄制播放過程中遇到的一些問題,主要包括: 視頻錄制流程 視頻預覽及SurfaceHolder 視頻清晰度及文件大小 視頻文件旋轉 一、視頻錄制
我的Android進階之旅------)Android采用AES+RSA的加密機制對http請求進行加密
前言 最近維護公司APP應用的登錄模塊,由於測試人員用Fiddler抓包工具抓取到了公司關於登錄時候的明文登錄信息。雖然使用的是HTTPS的方式進行http請求的,但還是