真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android如何實(shí)現(xiàn)炫酷輪播圖效果

這篇文章將為大家詳細(xì)講解有關(guān)Android如何實(shí)現(xiàn)炫酷輪播圖效果,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

新興ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!

輪播圖的實(shí)現(xiàn)有很多種方式,早先我在網(wǎng)上看了下別人寫(xiě)的輪播圖,感覺(jué)都比較的墨守成規(guī),有的還有可能加載不了網(wǎng)絡(luò)圖片。所以我在這里自己重新寫(xiě)了下輪播圖 ,方便日后的項(xiàng)目使用.

效果圖:這只是其中的一種效果

Android如何實(shí)現(xiàn)炫酷輪播圖效果

底層封裝的我在下面會(huì)一一展示,先看下在MainActivity中怎樣調(diào)取這個(gè)輪播控件

package com.wujie.advertisment.activity;

import android.view.View;

import com.wujie.advertisment.R;
import com.wujie.advertisment.flashview.EffectConstants;
import com.wujie.advertisment.flashview.FlashView;

import java.util.ArrayList;

public class MainActivity extends BaseActivity {
 private FlashView flashView;
 private ArrayList imageUrls=new ArrayList();
 @Override
 protected void initView() {
  setContentView(R.layout.activity_main);
  flashView=(FlashView)findViewById(R.id.flash_view);
 }

 @Override
 protected void initListener() {
 }

 @Override
 protected void initData() {

/**
 * 獲取接口返回的輪播圖地址,獲取的部分我已經(jīng)注釋掉了,可以使用。我在這里就直接弄了4張圖片
 */
   imageUrls.add("1303680113,133301350&fm=21&gp=0.jpg");
   imageUrls.add("1350614941,725003865&fm=21&gp=0.jpg");
   imageUrls.add("3293842903,1040789920&fm=21&gp=0.jpg");
   imageUrls.add(",1368131788&fm=21&gp=0.jpg");

    flashView.setImageUris(imageUrls);
  /** (wujie)增加代碼 usage:需要什么類(lèi)型falshView直接去找這個(gè)類(lèi)就行在flashView框架中,同時(shí)修改View中的flashView注釋的那塊*/
    flashView.setEffect(EffectConstants.CUBE_EFFECT);


//  VolleyRequest.newInstance(IpAddressConstants.getAdnertisment("","")).newGsonRequest2(Request.Method.POST,IpAddressConstants.ADVERTISMENT_URL, Advertisment.class,
//    new Response.Listener() {
//     @Override
//     public void onResponse(Advertisment dvertisment) {
//      /**在此處將服務(wù)器返回的輪播圖地址一個(gè)一個(gè)放入imageUrls中*/
//      flashView.setImageUris(imageUrls);
//      /** (wujie)增加代碼 usage:需要什么類(lèi)型falshView直接去找這個(gè)類(lèi)就行在flashView框架中,同時(shí)修改View中的flashView注釋的那塊*/
//      flashView.setEffect(EffectConstants.CUBE_EFFECT);
//     }
//    }, new Response.ErrorListener() {
//     @Override
//     public void onErrorResponse(VolleyError volleyError) {
//
//     }
//    });
 }

 @Override
 public void onClick(View view) {

 }
}

MainActivity繼承的BaseActivity:

package com.wujie.advertisment.activity;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Window;
import android.widget.Toast;

/**
 * 
 * Company:
 * Author : wujie
 * Time : 2016/11
 * Usage : 所有自定義activity的父類(lèi)
 * desc :
 * other :
 * 
 */ public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener{  @Override  protected void onCreate(@Nullable Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   supportRequestWindowFeature(Window.FEATURE_NO_TITLE);   initView();   initData();   initListener();  }  /**   * 初始化控件   */  protected abstract void initView();  /**   * 設(shè)置監(jiān)聽(tīng)   */  protected abstract void initListener();  /**   * 初始化數(shù)據(jù)   */  protected abstract void initData();  /**   * 吐司   */  public void showShortToast(String toast) {   Toast.makeText(this, toast, Toast.LENGTH_SHORT).show();  } }

那么下面我就來(lái)封裝Volley請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)框架,封裝好了之后,調(diào)用在MainActivity中有體現(xiàn)。
首先,VolleyRequest類(lèi)如下:

package com.wujie.advertisment.volley;

import android.content.Context;
import android.util.Log;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;

import java.util.HashMap;
import java.util.Map;

/**
 * 請(qǐng)求類(lèi)
 */
public class VolleyRequest {
 private static RequestQueue mRequestQueue;
 private Map mMap=new HashMap<>();
 private VolleyRequest() {
 }
 private VolleyRequest(Map mMap) {

  this.mMap=mMap;
 }

 /**
  * @param context ApplicationContext
  */
 public static void buildRequestQueue(Context context) {
  mRequestQueue = Volley.newRequestQueue(context);
  //... do something
 }

 /** (WangShuJie)增加代碼 usage:非帶參數(shù)*/
 public static VolleyRequest newInstance() {
  if (mRequestQueue == null) {
   throw new NullPointerException("Call buildRequestQueue method first.");
  }
  //...
  return new VolleyRequest();
 }

 /** (WangShuJie)增加代碼 usage:帶參數(shù)*/
 public static VolleyRequest newInstance(Map mMap) {
  if (mRequestQueue == null) {
   throw new NullPointerException("Call buildRequestQueue method first.");
  }
  //...
  Log.i("mtag","newInstance==========="+mMap.get("goodsname"));
  return new VolleyRequest(mMap);
 }

 /**
  * @param url
  * @param clazz
  * @param listener
  * @param errorListener
  *帶參
  * @return
  */
 public  GsonRequest newGsonRequest2(int method, String url, Class clazz, Response.Listener listener,
            Response.ErrorListener errorListener) {
  GsonRequest request = new GsonRequest(method,url, clazz, listener, errorListener){
   @Override
   protected Map getParams() {
    Log.i("mtag","getParams==========="+mMap.get("goodsname"));
    return mMap;
   }
  };

  mRequestQueue.add(request);
  return request;
 }

 /** (wujie)增加代碼 usage:不帶參的*/
 public  GsonRequest newGsonRequest(String url, Class clazz, Response.Listener listener,
            Response.ErrorListener errorListener) {
  GsonRequest request = new GsonRequest(url, clazz, listener, errorListener);
  mRequestQueue.add(request);
  return request;
 }
}

GsonRequest類(lèi):

package com.wujie.advertisment.volley;

import android.util.Log;

import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.toolbox.HttpHeaderParser;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.io.UnsupportedEncodingException;



public class GsonRequest extends Request {

 private final Listener mListener;

 private static Gson mGson = new Gson();

 private Class mClass;
 private TypeToken mTypeToken;

 public GsonRequest(int method, String url, Class clazz, Listener listener,
      ErrorListener errorListener) {
  super(method, url, errorListener);
  mClass = clazz;
  mListener = listener;
 }

 public GsonRequest(int method, String url, TypeToken typeToken, Listener listener,
      ErrorListener errorListener) {
  super(method, url, errorListener);
  mTypeToken = typeToken;
  mListener = listener;
 }

 public GsonRequest(String url, Class clazz, Listener listener, ErrorListener errorListener) {
  this(Method.GET, url, clazz, listener, errorListener);
 }

 public GsonRequest(String url, TypeToken typeToken, Listener listener, ErrorListener errorListener) {
  super(Method.GET, url, errorListener);
  mTypeToken = typeToken;
  mListener = listener;
 }

 @Override
 protected Response parseNetworkResponse(NetworkResponse response) {
  try {
   String jsonString = new String(response.data,"UTF-8");
   Log.i("mtag","響應(yīng)====="+response.data);
   if (mTypeToken == null)
    return Response.success(mGson.fromJson(jsonString, mClass),
      HttpHeaderParser.parseCacheHeaders(response));
   else
    return (Response) Response.success(mGson.fromJson(jsonString, mTypeToken.getType()),
      HttpHeaderParser.parseCacheHeaders(response));
  } catch (UnsupportedEncodingException e) {
   return Response.error(new ParseError(e));
  }
 }

 @Override
 protected void deliverResponse(T response) {
  mListener.onResponse(response);
 }

}

管理接口的類(lèi):

package com.wujie.advertisment.volley;

import java.util.HashMap;
import java.util.Map;

/**
 * author:wujie 2016/11
 * usage:
 */

public class IpAddressConstants {
 public static String MYIP="http://xxxxx:8080/";

 /** ======輪播圖====== */
 public static final String ADVERTISMENT_URL=MYIP+"AppInterface/advert/indexAdvert";
 /** (wujie)增加代碼 usage:獲取輪播圖需要的Map數(shù)據(jù)*/
 public static Map getAdnertisment(String city,String token){
  Map mMap=new HashMap<>();
  mMap.put("city_name",city);//這個(gè)key是你要上傳參數(shù)的的key,服務(wù)器通過(guò)這個(gè)key來(lái)獲取客戶(hù)端穿的參數(shù)。
  mMap.put("token",token);
  return mMap;
 }
}

封裝好后,我們要將Volley請(qǐng)求加入到隊(duì)列中(初始化):

package com.wujie.advertisment.application;

import android.app.Application;
import android.content.Context;

import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.wujie.advertisment.volley.VolleyRequest;

/**
 * 
 * Company: xxx
 * Author : wujie
 * Time : 2016/11
 * Usage :
 * desc :
 * other :
 * 
 */ public class MyApplication extends Application {  public static Context mContext;  @Override  public void onCreate() {   super.onCreate();   mContext = getApplicationContext();   VolleyRequest.buildRequestQueue(this);   initImageLoader();  }  private void initImageLoader() {   /**    * ImageLoader的全局的配置信息    */   ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)     .memoryCache(new LruMemoryCache(2 * 1024 * 1024))     .diskCacheFileCount(100)     .memoryCacheSize(2 * 1024 * 1024) //設(shè)置內(nèi)存的緩存     .diskCacheSize(50 * 1024 * 1024) //設(shè)置磁盤(pán)緩存的大小     .threadPoolSize(4) //設(shè)置線程池的大小是多少     .build();   //設(shè)置配置信息this //  ImageLoader.getInstance().init(new ImageLoaderConfiguration.Builder(this).build());   ImageLoader.getInstance().init(configuration); //  ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(this);  } }

到此為止,網(wǎng)絡(luò)請(qǐng)求框架就封裝好了,下面就是輪播圖的實(shí)現(xiàn),因?yàn)榇a文件比較多,我就不一一列舉出來(lái)了,如果大家有需要可以找我要整個(gè)代碼。

Android如何實(shí)現(xiàn)炫酷輪播圖效果

注意點(diǎn):

1. 輪播圖圖片描述字體資源文件的導(dǎo)入
2. 網(wǎng)絡(luò)請(qǐng)求框架的初始化

關(guān)于“Android如何實(shí)現(xiàn)炫酷輪播圖效果”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


文章標(biāo)題:Android如何實(shí)現(xiàn)炫酷輪播圖效果
文章來(lái)源:http://weahome.cn/article/iijdog.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部