天天看點

從網絡擷取圖檔JSON連結本地輪流播放

private List<Map<String, String>> mlist;

private FinalBitmap fb;

初始化,準備請求伺服器

public void initttq() {

mlist = new ArrayList<Map<String, String>>();

StringBuffer urlSb = new StringBuffer();

urlSb.append(getResources().getString(R.string.str_bcpservice_ip))

.append(":")

.append(getResources().getString(R.string.str_bcpservice_port))

.append("/mobileInterface/forum/note/home");

executeRequest(new JsonObjectRequest(Method.POST, urlSb.toString(),

getttqinfo(), ttqHomeResponseListener(), errorListener()));

}

送出請求資料

public JSONObject getttqinfo() {

JSONObject jsonObject = new JSONObject();

try {

jsonObject.put("smallCommunityCode", smallcommunitycode);

jsonObject.put("mobile", regeditmobile);

jsonObject.put("token", token);

jsonObject.put("recordNum", "3");

return jsonObject;

} catch (Exception ex) {

ex.printStackTrace();

return null;

監聽伺服器響應

private Response.Listener<JSONObject> ttqHomeResponseListener() {

return new Response.Listener<JSONObject>() {

@Override

public void onResponse(JSONObject jsonobject) {

System.out.println(jsonobject.toString());

JSONArray jsonarr = jsonobject.getJSONArray("list");

for (int i = 0; i < jsonarr.length(); i++) {

JSONObject jsonObj = jsonarr.getJSONObject(i);

final Map<String, String> map = new HashMap<String, String>();

Iterator it = jsonObj.keys();

while (it.hasNext()) {

String key = it.next();

String value = jsonObj.getString(key);

map.put(key, value);

mlist.add(map);

fb = FinalBitmap.create(getActivity());

fb.configLoadingImage(R.drawable.ic_launcher);

fb.configBitmapLoadThreadSize(5);

final ViewFlipper viewFlipper = (ViewFlipper) view

.findViewById(R.id.viewflipper);

for (int j = 0; j < jsonObj.length(); j++) {

ImageView img = new ImageView(getActivity());

fb.display(img, mlist.get(j).get("titlePicPath").toString());

viewFlipper.addView(img);

initadvertising(viewFlipper);

initTtqViewFlliper();

};

執行自動播放

private void initadvertising(final ViewFlipper viewFlipper) {

viewFlipper.setAutoStart(true); // 設定自動播放功能(點選事件,前自動播放)

viewFlipper.setFlipInterval(2000);

if (viewFlipper.isAutoStart() && !viewFlipper.isFlipping()) {

viewFlipper.startFlipping();

Animation lInAnim = AnimationUtils.loadAnimation(getActivity(),

R.anim.push_left_in); // 向左滑動左側進入的漸變效果(alpha 0.1 -> 1.0)

Animation lOutAnim = AnimationUtils.loadAnimation(getActivity(),

R.anim.push_left_out); // 向左滑動右側滑出的漸變效果(alpha 1.0 -> 0.1)

viewFlipper.setInAnimation(lInAnim);

viewFlipper.setOutAnimation(lOutAnim);

viewFlipper.setDisplayedChild(3);

viewFlipper.showNext();