RXjava封装实现详情页面
来源:互联网 发布:java教育平台源码下载 编辑:程序博客网 时间:2024/05/18 01:18
//依赖
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4' compile 'com.squareup.okhttp3:okhttp:3.1.2' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4' compile 'com.facebook.fresco:fresco:0.11.0' compile 'com.jcodecraeer:xrecyclerview:1.3.2' compile 'com.android.support:design:26.+' compile 'io.reactivex:rxjava:1.1.0' compile 'io.reactivex:rxandroid:1.1.0' compile 'com.google.code.gson:gson:2.6.2' compile 'com.youth.banner:banner:1.4.9'//图片加载依赖 compile 'org.webjars.npm:react-imageloader:2.1.0' compile 'com.github.bumptech.glide:glide:3.7.0'//utils工具了
Bitmap的封装public class BitmapUtil { String uri; ImageView ls_iv; public void getpic(String uri,ImageView ls_iv){ this.uri=uri; this.ls_iv=ls_iv; new Thread(runnable).start(); } Handler handler=new Handler(){ public void handleMessage(Message msg) { ls_iv.setImageBitmap((Bitmap) msg.obj); }; }; Runnable runnable=new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { URL url = new URL(uri); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); InputStream is = connection.getInputStream(); Bitmap bitmap= BitmapFactory.decodeStream(is); Message msg = new Message(); msg.obj=bitmap; msg.what=0; handler.sendMessage(msg); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } };}//ImageLoader的封装的工具类public class BnImageLoader extends ImageLoader{ @Override public void displayImage(Context context, Object path, ImageView imageView) { Uri uri = Uri.parse((String) path); imageView.setImageURI(uri); } public ImageView createImageView(Context context) { //使用fresco,需要创建它提供的ImageView,当然你也可以用自己自定义的具有图片加载功能的ImageView SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context); return simpleDraweeView; }}//Retrofit封装的工具类public class RetrofitManager { private Retrofit mRetrofit; private String baseUrl; OkHttpClient client;//有关拦截器 private static RetrofitManager mRetrofitManager; private RetrofitManager(){} private RetrofitManager(String baseUrl, OkHttpClient client){ this.baseUrl=baseUrl; this.client=client;//有关拦截器 initRetrofit(); } public static synchronized RetrofitManager getInstance(String baseUrl,OkHttpClient client){//有关拦截器 if (mRetrofitManager == null){ mRetrofitManager = new RetrofitManager(baseUrl,client); } return mRetrofitManager; } private void initRetrofit() { mRetrofit = new Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .client(client)//有关拦截器 .build(); } public <T> T setCreate(Class<T> reqServer){ return mRetrofit.create(reqServer); }}//myapppublic class MyApp extends Application { @Override public void onCreate() { super.onCreate(); Fresco.initialize(this); }}//首页public interface SYUrl { //首页 @GET("v5/newlist?page=1&size=20&ver=1512745500001&pdduid=3470667255") Observable<Sy_bean> getSy();}//详情页public interface BNUrl { //详情页 @GET("v5/goods/{goods_id}?pdduid=3470667255") Observable<Bn_Bean> getPj(@Path("goods_id") String goods_id);}//评价public interface PJUrl { //评价 @GET("reviews/{id}?page=1&size=10&label=1&is_back=1&pdduid=3470667255") Observable<Pj_Bean> getPj(@Path("id") String id);}//Model层的接口public interface ISYDataModel { //首页 public void getSYData(Observer observer);}//首页继承接口public class SYDataModel implements ISYDataModel {//首页 @Override public void getSYData(Observer observer) { OkHttpClient client=new OkHttpClient.Builder().build(); RetrofitManager.getInstance("http://apiv3.yangkeduo.com/",client).setCreate(SYUrl.class).getSy().observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(observer); }}//Model层的接口
public interface IBNDataModel { //详情页 public void getBNData(String goods_id, Observer observer);}//详情页面继承接口public class BNDataModel implements IBNDataModel {//详情 @Override public void getBNData(String goods_id,Observer observer) { OkHttpClient client=new OkHttpClient.Builder().build(); RetrofitManager.getInstance("http://apiv4.yangkeduo.com/",client).setCreate(BNUrl.class).getPj(goods_id).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(observer); }}public interface IPJDataModel {//Model层的接口
//评价 public void getPJData(String id, Observer observer);}//评价页面继承接口public class PJDataModel implements IPJDataModel {//评价页面 @Override public void getPJData(String id,Observer observer) { OkHttpClient client=new OkHttpClient.Builder().build(); RetrofitManager.getInstance("http://apiv4.yangkeduo.com/",client).setCreate(PJUrl.class).getPj(id).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(observer); }}//首页P层//首页public class SYPresenter { SYDataModel model; ISYDataView view; List<Sy_bean.GoodsListBean> sylist=new ArrayList<>(); public SYPresenter(ISYDataView view) { this.view = view; model=new SYDataModel(); } public void spData(){ model.getSYData(new Observer<Sy_bean>(){ @Override public void onCompleted() { } @Override public void onError(Throwable e) { Log.i("111111p","onError"); } @Override public void onNext(Sy_bean sy_bean) { sylist.addAll(sy_bean.getGoods_list()); view.showSYData(sylist); } }); }}//详情页P层//详情页面public class BNPresenter { BNDataModel model; IBNDataView view; List<Bn_Bean.SkuBean> bnlist=new ArrayList<>(); public BNPresenter(IBNDataView view) { this.view = view; model=new BNDataModel(); } public void ppData(){ String goods_id=view.getBnId(); model.getBNData(goods_id,new Observer<Bn_Bean>(){ @Override public void onCompleted() { } @Override public void onError(Throwable e) { Log.i("111111banner","onError......"); } @Override public void onNext(Bn_Bean bn_bean) { bnlist.addAll(bn_bean.getSku()); view.bnShowData(bnlist); Log.i("111111banner","onNext"+bnlist); } }); }}//评价页面P层//评价页面public class PJPresenter { PJDataModel model; IPJDataView view; List<Pj_Bean.DataBean> pjlist=new ArrayList<>(); public PJPresenter(IPJDataView view) { this.view = view; model=new PJDataModel(); } public void ppData(){ String id=view.getId(); model.getPJData(id,new Observer<Pj_Bean>(){ @Override public void onCompleted() { } @Override public void onError(Throwable e) { Log.i("111111p","onError"); } @Override public void onNext(Pj_Bean pj_bean) { pjlist.addAll(pj_bean.getData()); view.pjShowData(pjlist); } }); }}View层接口
首页View层接口//首页View层接口public interface ISYDataView { public void showSYData(List<Sy_bean.GoodsListBean> sylist);}////详情View层接口View层接口public interface IBNDataView { public void bnShowData(List<Bn_Bean.SkuBean> bnlist); public String getBnId();}View层接口//评价View层接口public interface IPJDataView { public void pjShowData(List<Pj_Bean.DataBean> pjlist); public String getId();}//首页MainActivity继承接口public class MainActivity extends AppCompatActivity implements ISYDataView { SYAdapter syAdapter; private RecyclerView mRv; List<Sy_bean.GoodsListBean> sylist=new ArrayList<>(); SYPresenter syPresenter; String id; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); syPresenter=new SYPresenter(this); showSYData(sylist); syPresenter.spData(); } @Override public void showSYData(final List<Sy_bean.GoodsListBean> sylist) { GridLayoutManager manager=new GridLayoutManager(this,2); mRv.setLayoutManager(manager); syAdapter=new SYAdapter(this,sylist); mRv.setAdapter(syAdapter); syAdapter.setOnItemClick(new SYAdapter.OnItemClickListener() { @Override public void OnItemClick(View view, int position, String name, String pic, String price) { id=sylist.get(position).getGoods_id()+""; Intent intent = new Intent(MainActivity.this,DetailsActivity.class); intent.putExtra("id",id); intent.putExtra("name",name); intent.putExtra("pic",pic); intent.putExtra("price",price); startActivity(intent); } }); } private void initView() { mRv = (RecyclerView) findViewById(R.id.rv); }}//详情页面继承接口//详情页面View层的Activitypublic class PingJiaActivity extends AppCompatActivity implements IPJDataView{ PJXAdapter pjxAdapter; PJPresenter pjPresenter; String id; List<Pj_Bean.DataBean> pjlist = new ArrayList<>(); private ListView mPjLv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ping_jia); initView(); Intent intent=getIntent(); id=intent.getStringExtra("id"); pjPresenter=new PJPresenter(this); pjPresenter.ppData(); } private void initView() { mPjLv = (ListView) findViewById(R.id.pj_lv); } @Override public void pjShowData(List<Pj_Bean.DataBean> pjlist) { pjxAdapter=new PJXAdapter(this,pjlist); mPjLv.setAdapter(pjxAdapter); } @Override public String getId() { return id; }}//评价页面的Activity//评价页面继承接口public class DetailsActivity extends AppCompatActivity implements IPJDataView,IBNDataView{ private Banner mbanner; private TextView mPriceName,more; private ListView d_pj_lv; PJPresenter pjPresenter; String name; List<Pj_Bean.DataBean> pjlist=new ArrayList<>(); List<Bn_Bean.SkuBean> bnlist=new ArrayList<>(); String pic; String price; String id; PJAdapter pjAdapter; BNPresenter bnPresenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_details); initView(); Intent intent=getIntent(); name =intent.getStringExtra("name"); pic=intent.getStringExtra("pic"); price=intent.getStringExtra("price"); id=intent.getStringExtra("id"); initData(); pjPresenter=new PJPresenter(this); pjShowData(pjlist); pjPresenter.ppData(); bnPresenter=new BNPresenter(this); bnShowData(bnlist); bnPresenter.ppData(); more.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent2 = new Intent(DetailsActivity.this,PingJiaActivity.class); intent2.putExtra("id",id); startActivity(intent2); } }); } private void initData() { mPriceName.setText(price+"\r\n"+name); } private void initView() { mbanner = (Banner) findViewById(R.id.mbanner); mPriceName = (TextView) findViewById(R.id.price_name); d_pj_lv = (ListView) findViewById(R.id.d_pj_lv); more=findViewById(R.id.more); } @Override public void pjShowData(List<Pj_Bean.DataBean> pjlist) { pjAdapter=new PJAdapter(this,pjlist); d_pj_lv.setAdapter(pjAdapter); } @Override public String getId() { return id; } @Override public void bnShowData(List<Bn_Bean.SkuBean> bnlist) { ArrayList<String> pic=new ArrayList<>(); for(int i=0;i<bnlist.size();i++){ pic.add(bnlist.get(i).getThumb_url()); Log.i("111111b",""+bnlist.get(i).getThumb_url()); } mbanner.setImageLoader(new BnImageLoader()); mbanner.setImages(pic); mbanner.start(); } @Override public String getBnId() { return id; }}//首页的适配器public class SYAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ Context context; List<Sy_bean.GoodsListBean> sylist; OnItemClickListener listener; public SYAdapter(Context context, List<Sy_bean.GoodsListBean> sylist) { this.context = context; this.sylist = sylist; }//详情页面的适配器//详情页的适配器public class PJAdapter extends BaseAdapter { Context context; List<Pj_Bean.DataBean> pjlist; public PJAdapter(Context context, List<Pj_Bean.DataBean> pjlist) { this.context = context; this.pjlist = pjlist; } @Override public int getCount() { return pjlist.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { PJHolder holder; if(convertView==null){ convertView=View.inflate(context, R.layout.pj_item,null); holder=new PJHolder(); holder.pj_tv=convertView.findViewById(R.id.pj_tv); holder.name_tv=convertView.findViewById(R.id.name_tv); convertView.setTag(holder); }else{ holder= (PJHolder) convertView.getTag(); } holder.name_tv.setText(pjlist.get(position).getName()); holder.pj_tv.setText(pjlist.get(position).getComment()); return convertView; } class PJHolder{ TextView name_tv; TextView pj_tv; }}//评价页面的适配器//评价页面的适配器public class PJXAdapter extends BaseAdapter { Context context; List<Pj_Bean.DataBean> pjlist; public PJXAdapter(Context context, List<Pj_Bean.DataBean> pjlist) { this.context = context; this.pjlist = pjlist; } @Override public int getCount() { return pjlist.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { PjxHolder holder; if(convertView==null){ convertView=View.inflate(context, R.layout.pjx_item,null); holder=new PjxHolder(); holder.p_name=convertView.findViewById(R.id.p_name); holder.p_nr=convertView.findViewById(R.id.p_nr); holder.p_sdv=convertView.findViewById(R.id.p_sdv); convertView.setTag(holder); }else{ holder= (PjxHolder) convertView.getTag(); } holder.p_name.setText(pjlist.get(position).getName()); holder.p_nr.setText(pjlist.get(position).getComment()); holder.p_sdv.setImageURI(pjlist.get(position).getAvatar()); return convertView; } class PjxHolder{ TextView p_name,p_nr; SimpleDraweeView p_sdv; }}//布局
//首页布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".view.MainActivity"> <TextView android:text="新品" android:id="@+id/tv" android:textSize="25sp" android:gravity="center" android:textColor="@android:color/holo_red_dark" android:layout_width="match_parent" android:layout_height="wrap_content" /> <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_below="@+id/tv" android:layout_height="match_parent" ></android.support.v7.widget.RecyclerView></RelativeLayout>//评价页面<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".view.PingJiaActivity"> <ListView android:id="@+id/pj_lv" android:layout_width="match_parent" android:layout_height="match_parent"></ListView></LinearLayout>//最后一个页面<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".view.DetailsActivity"> <com.youth.banner.Banner android:id="@+id/mbanner" android:layout_width="match_parent" android:layout_height="350dp" /> <TextView android:id="@+id/price_name" android:layout_width="match_parent" android:textSize="15sp" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="match_parent" android:background="@color/gainsboro" android:layout_height="12dp"></LinearLayout> <LinearLayout android:id="@+id/d_ll" android:orientation="horizontal" android:layout_width="match_parent" android:gravity="center_vertical" android:layout_height="wrap_content"> <TextView android:text="商品评价" android:textSize="20sp" android:layout_marginLeft="20dp" android:textColor="@android:color/black" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/more" android:layout_width="match_parent" android:layout_height="match_parent" android:text="查看全部>" android:gravity="center" android:layout_weight="1" android:layout_marginLeft="200dp" /> </LinearLayout> <ListView android:id="@+id/d_pj_lv" android:layout_marginLeft="20dp" android:layout_width="match_parent" android:layout_height="465dp"></ListView> <Button android:id="@+id/gwc" android:layout_width="match_parent" android:layout_height="60dp" android:text="加入购物车" android:textSize="20sp" android:background="@color/crimson" /></LinearLayout>//item布局
//首页item<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_marginLeft="35dp" android:layout_height="match_parent"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/sdv" android:layout_marginLeft="30dp" android:layout_width="200dp" android:layout_height="200dp" /> <TextView android:id="@+id/sy_price" android:layout_marginLeft="30dp" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/sy_tv" android:layout_marginLeft="30dp" android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout>//详情页面item<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <TextView android:id="@+id/name_tv" android:layout_width="match_parent" android:textSize="20sp" android:text="111111111" android:textColor="@color/colorAccent" android:layout_height="wrap_content" /> <TextView android:id="@+id/pj_tv" android:layout_marginTop="10dp" android:layout_width="match_parent" android:textSize="15sp" android:text="111111111" android:layout_height="wrap_content" /></LinearLayout>//别忘了改一下value文件下面的color<?xml version="1.0" encoding="utf-8"?><resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> <color name="white_c">#FFFFFF</color> <!-- 白色 --> <color name="ivory">#FFFFF0</color> <!-- 象牙色 --> <color name="lightyellow">#FFFFE0</color> <!-- 亮黄色 --> <color name="yellow">#FFFF00</color> <!-- 黄色 --> <color name="snow">#FFFAFA</color> <!-- 雪白色 --> <color name="floralwhite">#FFFAF0</color> <!-- 花白色 --> <color name="lemonchiffon">#FFFACD</color> <!-- 柠檬绸色 --> <color name="cornsilk">#FFF8DC</color> <!-- 米绸色 --> <color name="seashell">#FFF5EE</color> <!-- 海贝色 --> <color name="lavenderblush">#FFF0F5</color> <!-- 淡紫红 --> <color name="papayawhip">#FFEFD5</color> <!-- 番木色 --> <color name="blanchedalmond">#FFEBCD</color> <!-- 白杏色 --> <color name="mistyrose">#FFE4E1</color> <!-- 浅玫瑰色 --> <color name="bisque">#FFE4C4</color> <!-- 桔黄色 --> <color name="moccasin">#FFE4B5</color> <!-- 鹿皮色 --> <color name="navajowhite">#FFDEAD</color> <!-- 纳瓦白 --> <color name="peachpuff">#FFDAB9</color> <!-- 桃色 --> <color name="gold">#FFD700</color> <!-- 金色 --> <color name="pink">#FFC0CB</color> <!-- 粉红色 --> <color name="lightpink">#FFB6C1</color> <!-- 亮粉红色 --> <color name="orange">#FFA500</color> <!-- 橙色 --> <color name="lightsalmon">#FFA07A</color> <color name="btn_purple_press_ok">#FFFFFF</color> <!-- 亮肉色 --> <color name="darkorange">#FF8C00</color> <!-- 暗桔黄色 --> <color name="coral">#FF7F50</color> <!-- 珊瑚色 --> <color name="hotpink">#FF69B4</color> <!-- 热粉红色 --> <color name="tomato">#FF6347</color> <!-- 西红柿色 --> <color name="orangered">#FF4500</color> <!-- 红橙色 --> <color name="deeppink">#FF1493</color> <!-- 深粉红色 --> <color name="fuchsia">#FF00FF</color> <!-- 紫红色 --> <color name="magenta">#FF00FF</color> <!-- 红紫色 --> <color name="red">#FF0000</color> <!-- 红色 --> <color name="oldlace">#FDF5E6</color> <!-- 老花色 --> <color name="lightgoldenrodyellow">#FAFAD2</color> <!-- 亮金黄色 --> <color name="linen">#FAF0E6</color> <!-- 亚麻色 --> <color name="antiquewhite">#FAEBD7</color> <!-- 古董白 --> <color name="salmon">#FA8072</color> <!-- 鲜肉色 --> <color name="ghostwhite">#F8F8FF</color> <!-- 幽灵白 --> <color name="mintcream">#F5FFFA</color> <!-- 薄荷色 --> <color name="whitesmoke">#F5F5F5</color> <!-- 烟白色 --> <color name="beige">#F5F5DC</color> <!-- 米色 --> <color name="wheat">#F5DEB3</color> <!-- 浅黄色 --> <color name="sandybrown">#F4A460</color> <!-- 沙褐色 --> <color name="azure">#F0FFFF</color> <!-- 天蓝色 --> <color name="honeydew">#F0FFF0</color> <!-- 蜜色 --> <color name="aliceblue">#F0F8FF</color> <!-- 艾利斯兰 --> <color name="khaki">#F0E68C</color> <!-- 黄褐色 --> <color name="lightcoral">#F08080</color> <!-- 亮珊瑚色 --> <color name="palegoldenrod">#EEE8AA</color> <!-- 苍麒麟色 --> <color name="violet">#EE82EE</color> <!-- 紫罗兰色 --> <color name="darksalmon">#E9967A</color> <!-- 暗肉色 --> <color name="lavender">#E6E6FA</color> <!-- 淡紫色 --> <color name="lightcyan">#E0FFFF</color> <!-- 亮青色 --> <color name="burlywood">#DEB887</color> <!-- 实木色 --> <color name="plum">#DDA0DD</color> <!-- 洋李色 --> <color name="gainsboro">#DCDCDC</color> <!-- 淡灰色 --> <color name="crimson">#DC143C</color> <!-- 暗深红色 --> <color name="palevioletred">#DB7093</color> <!-- 苍紫罗兰色 --> <color name="goldenrod">#DAA520</color> <!-- 金麒麟色 --> <color name="orchid">#DA70D6</color> <!-- 淡紫色 --> <color name="thistle">#D8BFD8</color> <!-- 蓟色 --> <color name="lightgray">#D3D3D3</color> <!-- 亮灰色 --> <color name="lightgrey">#D3D3D3</color> <!-- 亮灰色 --> <color name="tan">#D2B48C</color> <!-- 茶色 --> <color name="chocolate">#D2691E</color> <!-- 巧可力色 --> <color name="peru">#CD853F</color> <!-- 秘鲁色 --> <color name="indianred">#CD5C5C</color> <!-- 印第安红 --> <color name="mediumvioletred">#C71585</color> <!-- 中紫罗兰色 --> <color name="silver">#C0C0C0</color> <!-- 银色 --> <color name="darkkhaki">#BDB76B</color> <!-- 暗黄褐色 --> <color name="rosybrown">#BC8F8F</color> <!-- 褐玫瑰红 --> <color name="mediumorchid">#BA55D3</color> <!-- 中粉紫色 --> <color name="darkgoldenrod">#B8860B</color> <!-- 暗金黄色 --> <color name="firebrick">#B22222</color> <!-- 火砖色 --> <color name="powderblue">#B0E0E6</color> <!-- 粉蓝色 --> <color name="lightsteelblue">#B0C4DE</color> <!-- 亮钢兰色 --> <color name="paleturquoise">#AFEEEE</color> <!-- 苍宝石绿 --> <color name="greenyellow">#ADFF2F</color> <!-- 黄绿色 --> <color name="lightblue">#ADD8E6</color> <!-- 亮蓝色 --> <color name="darkgray">#A9A9A9</color> <!-- 暗灰色 --> <color name="darkgrey">#A9A9A9</color> <!-- 暗灰色 --> <color name="brown">#A52A2A</color> <!-- 褐色 --> <color name="sienna">#A0522D</color> <!-- 赭色 --> <color name="darkorchid">#9932CC</color> <!-- 暗紫色 --> <color name="palegreen">#98FB98</color> <!-- 苍绿色 --> <color name="darkviolet">#9400D3</color> <!-- 暗紫罗兰色 --> <color name="mediumpurple">#9370DB</color> <!-- 中紫色 --> <color name="lightgreen">#90EE90</color> <!-- 亮绿色 --> <color name="darkseagreen">#8FBC8F</color> <!-- 暗海兰色 --> <color name="saddlebrown">#8B4513</color> <!-- 重褐色 --> <color name="darkmagenta">#8B008B</color> <!-- 暗洋红 --> <color name="darkred">#8B0000</color> <!-- 暗红色 --> <color name="blueviolet">#8A2BE2</color> <!-- 紫罗兰蓝色 --> <color name="lightskyblue">#87CEFA</color> <!-- 亮天蓝色 --> <color name="skyblue">#87CEEB</color> <!-- 天蓝色 --> <color name="gray">#808080</color> <!-- 灰色 --> <color name="grey">#808080</color> <!-- 灰色 --> <color name="olive">#808000</color> <!-- 橄榄色 --> <color name="purple">#800080</color> <!-- 紫色 --> <color name="maroon">#800000</color> <!-- 粟色 --> <color name="aquamarine">#7FFFD4</color> <!-- 碧绿色 --> <color name="chartreuse">#7FFF00</color> <!-- 黄绿色 --> <color name="lawngreen">#7CFC00</color> <!-- 草绿色 --> <color name="mediumslateblue">#7B68EE</color> <!-- 中暗蓝色 --> <color name="lightslategray">#778899</color> <!-- 亮蓝灰 --> <color name="lightslategrey">#778899</color> <!-- 亮蓝灰 --> <color name="slategray">#708090</color> <!-- 灰石色 --> <color name="slategrey">#708090</color> <!-- 灰石色 --> <color name="olivedrab">#6B8E23</color> <!-- 深绿褐色 --> <color name="slateblue">#6A5ACD</color> <!-- 石蓝色 --> <color name="dimgray">#696969</color> <!-- 暗灰色 --> <color name="dimgrey">#696969</color> <!-- 暗灰色 --> <color name="mediumaquamarine">#66CDAA</color> <!-- 中绿色 --> <color name="cornflowerblue">#6495ED</color> <!-- 菊兰色 --> <color name="cadetblue">#5F9EA0</color> <!-- 军兰色 --> <color name="darkolivegreen">#556B2F</color> <!-- 暗橄榄绿 --> <color name="indigo">#4B0082</color> <!-- 靛青色 --> <color name="mediumturquoise">#48D1CC</color> <!-- 中绿宝石 --> <color name="darkslateblue">#483D8B</color> <!-- 暗灰蓝色 --> <color name="steelblue">#4682B4</color> <!-- 钢兰色 --> <color name="royalblue">#4169E1</color> <!-- 皇家蓝 --> <color name="turquoise">#40E0D0</color> <!-- 青绿色 --> <color name="mediumseagreen">#3CB371</color> <!-- 中海蓝 --> <color name="limegreen">#32CD32</color> <!-- 橙绿色 --> <color name="darkslategray">#2F4F4F</color> <!-- 暗瓦灰色 --> <color name="darkslategrey">#2F4F4F</color> <!-- 暗瓦灰色 --> <color name="seagreen">#2E8B57</color> <!-- 海绿色 --> <color name="forestgreen">#228B22</color> <!-- 森林绿 --> <color name="lightseagreen">#20B2AA</color> <!-- 亮海蓝色 --> <color name="dodgerblue">#1E90FF</color> <!-- 闪兰色 --> <color name="midnightblue">#191970</color> <!-- 中灰兰色 --> <color name="aqua">#00FFFF</color> <!-- 浅绿色 --> <color name="cyan">#00FFFF</color> <!-- 青色 --> <color name="springgreen">#00FF7F</color> <!-- 春绿色 --> <color name="lime">#00FF00</color> <!-- 酸橙色 --> <color name="mediumspringgreen">#00FA9A</color> <!-- 中春绿色 --> <color name="darkturquoise">#00CED1</color> <!-- 暗宝石绿 --> <color name="deepskyblue">#00BFFF</color> <!-- 深天蓝色 --> <color name="darkcyan">#008B8B</color> <!-- 暗青色 --> <color name="teal">#008080</color> <!-- 水鸭色 --> <color name="green">#008000</color> <!-- 绿色 --> <color name="darkgreen">#006400</color> <!-- 暗绿色 --> <color name="blue">#0000FF</color> <!-- 蓝色 --> <color name="mediumblue">#0000CD</color> <!-- 中兰色 --> <color name="darkblue">#00008B</color> <color name="purple_button">#855090</color> <color name="btn_purple_normal_ok">#FFFFFF</color> <!-- 暗蓝色 --> <color name="navy">#000080</color> <!-- 海军色 --> <color name="black">#000000</color> <!-- 黑色 --> <color name="darkblack">#282828</color> <!-- 浅黑黑色 --> <color name="qianhui">#E0E0E0</color> <!-- 浅灰 --> <color name="color_bg_selected">#282828</color> <color name="color_bg_normal">#000000</color> <color name="result_view">#b0000000</color> <color name="viewfinder_mask">#60000000</color> <color name="possible_result_points">#c0ffff00</color></resources>
阅读全文
0 0
- RXjava封装实现详情页面
- MVP+Retrofit封装实现详情页面
- 如何实现新闻详情页面
- Bannear实现一个详情页面
- RxJava 使用详情
- jQuery实现页面详情展开收起
- 终极封装 Rxjava+Retrofit+okhttp+mvp实现
- andriod——Retrofit+Fresco+MVP+RxJAVA列表展示商品点击跳转此详情页面
- <web前端>web开发实现详情页面放大镜功效
- Vue模拟数据,实现路由进入商品详情页面
- 淘淘商城系列——实现商品详情页面展示
- Android 利用Zxing实现扫描二维码并跳转详情页面
- 商品详情页面实现点击收藏,取消收藏
- 使用RxJava和RxAndroid封装RxBus,实现EventBus功能
- retrofit+RxJava+okhttp简便封装实现网络请求(详解)
- 商品详情页面描述
- 商品详情页面布局
- 仿写京东商品详情页面
- C++之枚举
- 基于单片机的智能密码锁
- poj 3761 Bubble Sort
- Selenium使用入门——安装使用
- 12月8号
- RXjava封装实现详情页面
- [Johnson + 桶维护DIJ ] Codeforces #843D. Dynamic Shortest Path
- LintCode_100_删除排序数组中的重复数字
- 35 个 Java 代码性能优化总结
- Web Server
- Linux-用户与组群
- 快速入门分布式消息队列之 RabbitMQ(3)
- Windows和Ubuntu双系统,修复UEFI引导的两种办法
- dairy 12.10 学期总结