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);    }}
//myapp
public 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);    }}

//Model层的接口
public interface IPJDataModel {
    //评价    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>


 

原创粉丝点击