parent
4679e86098
commit
63662a1b6b
|
@ -63,7 +63,6 @@ dependencies {
|
|||
// annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
|
||||
implementation 'com.youth.banner:banner:1.4.10'
|
||||
api 'com.github.bumptech.glide:glide:4.6.1'
|
||||
api 'org.xutils:xutils:3.5.0'
|
||||
implementation 'com.google.code.gson:gson:2.8.5'
|
||||
// implementation 'com.viewpagerindicator:library:2.4.1'
|
||||
//implementation 'com.github.auv1107:tablayout-android:-SNAPSHOT'
|
||||
|
@ -78,4 +77,9 @@ dependencies {
|
|||
implementation 'com.squareup.okhttp3:logging-interceptor:3.14.0'
|
||||
implementation 'com.packetzoom:pz-okhttp3-interceptor:3.2.43'
|
||||
api 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
||||
implementation 'com.github.bumptech.glide:glide:4.9.0'
|
||||
implementation 'jp.wasabeef:glide-transformations:2.0.1'
|
||||
implementation 'com.timqi.collapsibletextview:library:1.1.2'
|
||||
// implementation 'com.ms-square:expandableTextView:0.1.4'
|
||||
|
||||
}
|
||||
|
|
|
@ -78,15 +78,15 @@ public abstract class Activity_base extends AppCompatActivity {
|
|||
|
||||
protected abstract void initData() ;
|
||||
|
||||
protected BookListAdapter getBookListAdapter(List<Novel> mDatas){
|
||||
BookListAdapter mAdapter = new BookListAdapter(this ,mDatas,R.layout.recycle_list_item_horizon,new OnItemClickListener()
|
||||
protected BookListAdapter getBookListAdapter(List<Novel> mDatas,int itemResourceId){
|
||||
BookListAdapter mAdapter = new BookListAdapter(this ,mDatas,itemResourceId,new OnItemClickListener()
|
||||
{
|
||||
|
||||
@Override
|
||||
public void onItemClick(View view, int position)
|
||||
{
|
||||
showBook("射雕" +position);
|
||||
|
||||
// showBook("射雕" +position);
|
||||
showBookDetail(mDatas.get(position));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -105,7 +105,12 @@ public abstract class Activity_base extends AppCompatActivity {
|
|||
|
||||
return mAdapter;
|
||||
}
|
||||
void showBookDetail(Novel book) {
|
||||
|
||||
Intent intent = new Intent(this, BookActivity.class);
|
||||
intent.putExtra(BookActivity.EXTRA_BOOK,book);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
|
|
|
@ -28,6 +28,7 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
|||
SlidingTabLayout tabLayout;
|
||||
public static String EXTR_FN="fn";
|
||||
public static String EXTR_TITLE="title";
|
||||
public static String EXTR_BANGDAN ="bangdan";
|
||||
private ArrayList<Fragment> mFragments;
|
||||
ArrayList<View> mList;
|
||||
String[] mTitle;
|
||||
|
@ -42,8 +43,8 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
|||
initTabs();
|
||||
}
|
||||
|
||||
|
||||
|
||||
String bangdan;
|
||||
String fn;
|
||||
@Override
|
||||
protected void setTitle() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
|
@ -51,11 +52,14 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
|||
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
|
||||
|
||||
}
|
||||
fn = getIntent().getStringExtra(EXTR_FN);
|
||||
|
||||
bangdan = getIntent().getStringExtra(EXTR_BANGDAN);
|
||||
|
||||
String title = getIntent().getStringExtra(EXTR_TITLE);
|
||||
String fn = getIntent().getStringExtra(EXTR_FN);
|
||||
|
||||
title+="榜";
|
||||
|
||||
//title+="榜";
|
||||
this.setTitle(title);
|
||||
}
|
||||
|
||||
|
@ -70,11 +74,16 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
|||
void initTabs() {
|
||||
|
||||
if(mFragments ==null || mFragments.size() ==0){
|
||||
mTitle = new String[]{"周榜", "月榜", "总榜"};
|
||||
// mTitle = new String[]{"周榜", "月榜", "总榜"};
|
||||
mFragments = new ArrayList<>();
|
||||
mFragments.add( Fragment_booklist.newInstance("a",1)); //目的地不清楚
|
||||
mFragments.add(new Fragment_booklist());
|
||||
mFragments.add(new Fragment_booklist());
|
||||
mFragments.add( Fragment_booklist.newInstance(fn,bangdan)); //首页更多
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// mFragments.add(new Fragment_booklist());
|
||||
// mFragments.add(new Fragment_booklist());
|
||||
|
||||
}
|
||||
Log.d(TAG,"set viewPager adapter ");
|
||||
|
@ -89,13 +98,14 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
|||
return mFragments.size();
|
||||
}
|
||||
//ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text
|
||||
@Override
|
||||
public CharSequence getPageTitle(int position) {
|
||||
return mTitle[position];
|
||||
}
|
||||
// @Override
|
||||
// public CharSequence getPageTitle(int position) {
|
||||
// return mTitle[position];
|
||||
// }
|
||||
};
|
||||
mViewpager.setAdapter(mAdapter);
|
||||
tabLayout.setViewPager(mViewpager);
|
||||
//tabLayout.setViewPager(mViewpager);
|
||||
tabLayout.setVisibility(View.GONE);
|
||||
// tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
|
||||
mViewpager.setCurrentItem(0);
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ public class Activity_shudan extends Activity_base {
|
|||
@Override
|
||||
protected void initData() {
|
||||
mData = getFakeData(5);
|
||||
mAdapter = getBookListAdapter( mData);
|
||||
mAdapter = getBookListAdapter( mData,R.layout.recycle_list_item_horizon);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -7,14 +7,17 @@ import android.content.Context;
|
|||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
|
@ -41,6 +44,9 @@ import com.novelbook.android.service.ChapterDownloadSvrc;
|
|||
import com.novelbook.android.service.MyIntentService;
|
||||
import com.novelbook.android.service.ServiceDownload;
|
||||
import com.novelbook.android.utils.BookUtil;
|
||||
import com.novelbook.android.utils.CommonUtil;
|
||||
import com.novelbook.android.utils.Constants;
|
||||
import com.novelbook.android.utils.GaoSiTransForm;
|
||||
import com.novelbook.android.utils.GsonUtil;
|
||||
import com.novelbook.android.utils.ImageUtil;
|
||||
import com.novelbook.android.utils.MyImageLoader;
|
||||
|
@ -54,6 +60,9 @@ import org.litepal.LitePal;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
@ -61,6 +70,7 @@ import java.util.List;
|
|||
|
||||
import butterknife.BindView;
|
||||
import butterknife.OnClick;
|
||||
import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.Request;
|
||||
|
@ -77,16 +87,21 @@ public class BookActivity extends Activity_base {
|
|||
private Novel mNovel;
|
||||
private Chapter mChapter;
|
||||
static String TAG = BookActivity.class.getSimpleName();
|
||||
BookListAdapter mAdapter;
|
||||
BookListAdapter mAdapterAuthor;
|
||||
// private BookListAdapter mAdapter;
|
||||
private List<Novel> mData;
|
||||
private List<Novel> mDataAuthor;
|
||||
|
||||
BookListAdapter mAdapterRelated;
|
||||
// private BookListAdapter mAdapter;
|
||||
private List<Novel> mDataRelated;
|
||||
;
|
||||
private Gson gson = new Gson();
|
||||
|
||||
//private Gson gson = new Gson();
|
||||
private List<Chapter> mChapters = new ArrayList<>();
|
||||
@BindView(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
// @BindView(R.id.toolbar)
|
||||
// Toolbar toolbar;
|
||||
@BindView(R.id.rvBooklist)
|
||||
RecyclerView rvBooklist;
|
||||
RecyclerView rvBooklistAuthor;
|
||||
@BindView(R.id.btnShelf)
|
||||
Button btnShelf;
|
||||
@BindView(R.id.imageView)
|
||||
|
@ -100,15 +115,23 @@ public class BookActivity extends Activity_base {
|
|||
@BindView(R.id.category)
|
||||
TextView txtCategory;
|
||||
@BindView(R.id.txtDesc2)
|
||||
TextView txtDesc2;
|
||||
com.timqi.collapsibletextview.CollapsibleTextView txtDesc2;
|
||||
@BindView(R.id.txtLatestCate)
|
||||
TextView txtLatestCate;
|
||||
@BindView(R.id.btnCacheBook)
|
||||
Button btnCach;
|
||||
|
||||
@BindView(R.id.rvBooklistRelated)
|
||||
RecyclerView rvBooklistRelated;
|
||||
Intent serviceIntent ;
|
||||
@BindView(R.id.imageViewHead)
|
||||
ImageView imageViewHead;
|
||||
|
||||
|
||||
@BindView(R.id.tvAuthorMore)
|
||||
TextView tvAuthorMore;
|
||||
@BindView(R.id.tvTonglei)
|
||||
TextView tvTonglei;
|
||||
@BindView(R.id.txtLatestUpdate)
|
||||
TextView tvLastUpdate;
|
||||
public Intent getSvrIntent(){
|
||||
if(serviceIntent ==null){
|
||||
serviceIntent= new Intent(this, ServiceDownload.class);
|
||||
|
@ -123,12 +146,17 @@ public class BookActivity extends Activity_base {
|
|||
|
||||
@Override
|
||||
protected void initViews() {
|
||||
initialBookList();
|
||||
rvBooklistRelated.setVisibility(View.GONE);
|
||||
rvBooklistAuthor.setVisibility(View.GONE);
|
||||
tvTonglei.setVisibility(View.GONE);
|
||||
tvAuthorMore.setText( "");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setupToolbar() {
|
||||
super.setupToolbar();
|
||||
toolbar.setTitleMarginBottom(1);
|
||||
toolbar.setTitleTextAppearance(this,R.style.TitleText);
|
||||
toolbar.inflateMenu(R.menu.menu_book);//设置右上角的填充菜单
|
||||
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
|
||||
@Override
|
||||
|
@ -164,8 +192,7 @@ public class BookActivity extends Activity_base {
|
|||
setBookInfo();//set title ,data from novel list
|
||||
|
||||
getBookInfo();
|
||||
mData = getFakeData(5);
|
||||
mAdapter = getBookListAdapter(mData);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -175,8 +202,36 @@ public class BookActivity extends Activity_base {
|
|||
|
||||
}
|
||||
|
||||
private void setNovelsSameAuthor(){
|
||||
|
||||
|
||||
if(mDataAuthor!=null && mDataAuthor.size() >0){
|
||||
tvAuthorMore.setText(mNovel.getAuthor()+ " 还写过");
|
||||
|
||||
} else{
|
||||
return;
|
||||
}
|
||||
rvBooklistAuthor.setVisibility(View.VISIBLE);
|
||||
mAdapterAuthor = getBookListAdapter(mDataAuthor,R.layout.recycle_list_item_horizon);
|
||||
rvBooklistAuthor.setLayoutManager(new LinearLayoutManager(this));
|
||||
rvBooklistAuthor.setAdapter(mAdapterAuthor);
|
||||
|
||||
}
|
||||
private void setNovelsRelated(){
|
||||
|
||||
if(mDataRelated!=null && mDataRelated.size() >0){
|
||||
tvTonglei.setVisibility(View.VISIBLE);
|
||||
|
||||
}else
|
||||
{
|
||||
return;
|
||||
}
|
||||
rvBooklistRelated.setVisibility(View.VISIBLE);
|
||||
mAdapterRelated = getBookListAdapter(mDataRelated,R.layout.recycle_list_item);
|
||||
rvBooklistRelated.setLayoutManager(new GridLayoutManager(this, Constants.NOVEL_SPAN_CNT));
|
||||
|
||||
rvBooklistRelated.setAdapter(mAdapterRelated);
|
||||
}
|
||||
/**
|
||||
* 设置服务器传来的详细信息
|
||||
*/
|
||||
|
@ -187,13 +242,39 @@ public class BookActivity extends Activity_base {
|
|||
this.txtCategory.setText(mNovel.getNovelType());
|
||||
this.txtDesc.setText(mNovel.getDesc ());
|
||||
this.txtTitle.setText(mNovel.getName());
|
||||
this.txtDesc2.setText(mNovel.getDesc ());
|
||||
this.txtLatestCate.setText(mNovel.getChapterName());
|
||||
if (mNovel.getLastUpateTime() > 0) {
|
||||
this.txtLatestCate.setText(new Date(mNovel.getLastUpateTime()).toString() + "\n" + txtLatestCate.getText());
|
||||
}
|
||||
loadImageView(mNovel.getCover(),imageView);
|
||||
this.txtDesc2.setFullString(mNovel.getDesc ());
|
||||
|
||||
txtDesc2.setCollapsedLines(2);
|
||||
// txtDesc2.setSuffixColor(R.color.colorPrimary);
|
||||
|
||||
// txtDesc2.setExpanded(false);
|
||||
// txtDesc2.setSuffixTrigger(false);
|
||||
this.txtLatestCate.setText(mNovel.getChapterName());
|
||||
tvLastUpdate.setText(CommonUtil.getDateString( mNovel.getLastUpateTime()));
|
||||
loadImageView(mNovel.getCover(),imageView);
|
||||
gaosiHeadPic();
|
||||
}
|
||||
void gaosiHeadPic(){
|
||||
//new BlurTransformation(BookActivity.this, 10)).into(mImageView);
|
||||
/* URL url = null;
|
||||
try {
|
||||
url = new URL( NetUtil.getCoverUrl(mNovel.getCover()));
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}*/
|
||||
String a =Uri.decode(NetUtil.getCoverUrl(mNovel.getCover()));
|
||||
Glide.with(BookActivity.this)
|
||||
.load( Uri.decode(NetUtil.getCoverUrl(mNovel.getCover())))
|
||||
.dontAnimate()
|
||||
.error(R.mipmap.side_bg2)
|
||||
.transform(new GaoSiTransForm(this, 50, 3)) // "14":模糊度;"3":图片缩放3倍后再进行模糊
|
||||
.into(imageViewHead);
|
||||
|
||||
|
||||
|
||||
|
||||
// Glide.with(this).load(url) .transform(new BlurTransformation(BookActivity.this, 10)).into(imageViewHead);
|
||||
// Glide.with(this).load(imageView.getDrawable()).transform(new BlurTransformation(BookActivity.this, 10)).into(imageViewHead);
|
||||
}
|
||||
|
||||
void setShelfButtonText() {
|
||||
|
@ -243,14 +324,14 @@ public class BookActivity extends Activity_base {
|
|||
setBookDetailInfo();
|
||||
} else if (msg.what == 2) //准备数据,启动service
|
||||
{
|
||||
hideProgress();
|
||||
|
||||
|
||||
|
||||
Toast.makeText(BookActivity.this, "已加入下载队列1", Toast.LENGTH_LONG).show();
|
||||
} else if (msg.what == 3) {
|
||||
Toast.makeText(BookActivity.this, "获取目录信息失败,下载失败", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
hideProgress();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -460,6 +541,50 @@ public class BookActivity extends Activity_base {
|
|||
}
|
||||
}, BookActivity.this));
|
||||
|
||||
BookSubscribe.getNovelsRelated(novelId, Constants.SEX, new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
//成功
|
||||
try {
|
||||
|
||||
mDataRelated = GsonUtil. parserJsonArray(result,Constants.BLOCK_TITLE_NOVELS);
|
||||
setNovelsRelated();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFault(String errorMsg) {
|
||||
|
||||
|
||||
}
|
||||
}, BookActivity.this));
|
||||
|
||||
BookSubscribe.getNovelsSameAuthor(novelId, Constants.SEX, new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
//成功
|
||||
try {
|
||||
|
||||
mDataAuthor = GsonUtil. parserJsonArray(result,Constants.BLOCK_TITLE_NOVELS);
|
||||
setNovelsSameAuthor();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFault(String errorMsg) {
|
||||
|
||||
|
||||
}
|
||||
}, BookActivity.this));
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
void readChapters( String url){
|
||||
|
@ -530,11 +655,6 @@ void onResponseProcess( String content ,String url){
|
|||
//----------------绑定列表
|
||||
|
||||
|
||||
void initialBookList() {
|
||||
|
||||
rvBooklist.setLayoutManager(new LinearLayoutManager(this));
|
||||
rvBooklist.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
|
|
|
@ -31,6 +31,10 @@ import android.widget.Toast;
|
|||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.novelbook.android.Activity_base;
|
||||
import com.novelbook.android.Activity_paihangbang;
|
||||
import com.novelbook.android.Activity_shudan;
|
||||
|
@ -55,6 +59,7 @@ import org.w3c.dom.Text;
|
|||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
|
@ -134,7 +139,7 @@ public abstract class BasicFragment extends Fragment {
|
|||
{
|
||||
|
||||
|
||||
Toast.makeText(getActivity(), " ", Toast.LENGTH_LONG).show();
|
||||
Toast.makeText(getActivity(), "数据请求失败 ", Toast.LENGTH_LONG).show();
|
||||
} else if (msg.what == 3) {
|
||||
|
||||
Toast.makeText(getActivity(), " ", Toast.LENGTH_LONG).show();
|
||||
|
@ -296,12 +301,30 @@ public abstract class BasicFragment extends Fragment {
|
|||
|
||||
NovelBlock nb = (NovelBlock) obj;
|
||||
Intent intent = new Intent(activity, Activity_paihangbang.class);
|
||||
intent.putExtra(Activity_paihangbang.EXTR_FN,nb.getFn() );
|
||||
intent.putExtra(Activity_paihangbang.EXTR_TITLE,nb.getTitle() );
|
||||
String title = TextUtils.isEmpty(nb.getTitle()) ? nb.getName() : nb.getTitle() ;
|
||||
|
||||
intent.putExtra(Activity_paihangbang.EXTR_FN,nb.getFn() );
|
||||
intent.putExtra(Activity_paihangbang.EXTR_TITLE,title );
|
||||
startActivity(intent);
|
||||
|
||||
}
|
||||
void showPaihangbang(NovelBlock nb) { //show paihangbang activity
|
||||
|
||||
Intent intent = new Intent(activity, Activity_paihangbang.class);
|
||||
String title = TextUtils.isEmpty(nb.getTitle()) ? nb.getName() : nb.getTitle() ;
|
||||
|
||||
intent.putExtra(Activity_paihangbang.EXTR_FN,nb.getFn() );
|
||||
intent.putExtra(Activity_paihangbang.EXTR_TITLE,title );
|
||||
intent.putExtra(Activity_paihangbang.EXTR_BANGDAN,title );
|
||||
startActivity(intent);
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void loadImageView(String url, ImageView imageView){
|
||||
ImageUtil.loadImage( getActivity(), url , imageView);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -3,13 +3,24 @@ package com.novelbook.android.Fragments;
|
|||
import android.os.Bundle;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.novelbook.android.R;
|
||||
import com.novelbook.android.bean.NovelBlock;
|
||||
import com.novelbook.android.db.Novel;
|
||||
import com.novelbook.android.netsubscribe.BookSubscribe;
|
||||
import com.novelbook.android.netutils.OnSuccessAndFaultListener;
|
||||
import com.novelbook.android.netutils.OnSuccessAndFaultSub;
|
||||
import com.novelbook.android.utils.BandanAdapter;
|
||||
import com.novelbook.android.utils.Constants;
|
||||
import com.novelbook.android.utils.GsonUtil;
|
||||
import com.novelbook.android.utils.OnItemClickListener;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
|
@ -21,7 +32,8 @@ public class Fragment_bangdan extends BasicFragment {
|
|||
private static final String ARG_PARAM1 = "param1";
|
||||
private static final String ARG_PARAM2 = "param2";
|
||||
private BandanAdapter mAdapter;
|
||||
private List<Novel> mData;
|
||||
private List<NovelBlock> mBlocks;
|
||||
// private List<Novel> mData;
|
||||
@BindView(R.id.rvBangdan)
|
||||
RecyclerView rvBandan;
|
||||
|
||||
|
@ -35,6 +47,39 @@ public class Fragment_bangdan extends BasicFragment {
|
|||
}
|
||||
@Override
|
||||
protected void fillData() {
|
||||
|
||||
if(mBlocks==null){
|
||||
return;
|
||||
}
|
||||
mAdapter = new BandanAdapter(activity ,mBlocks,R.layout.recycle_list_item_bangdan,new OnItemClickListener()
|
||||
{
|
||||
|
||||
@Override
|
||||
public void onItemClick(View view, int position)
|
||||
{
|
||||
showPaihangbang(mBlocks.get(position));
|
||||
|
||||
// Toast.makeText(getActivity(),"待。。。。。做",Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemLongClick(View view, int position)
|
||||
{
|
||||
// initDialog(position);
|
||||
// mAdapter.removeData(position);
|
||||
}
|
||||
@Override
|
||||
public void onLinearOutClick(View view, int blockId,int novelIndex) {
|
||||
// Toast.makeText(activity, "book "+ bookId + " clicked", Toast.LENGTH_SHORT).show();
|
||||
showBookDetail(mBlocks.get(blockId).getNs().get(novelIndex));
|
||||
//showPaihangbang("分类名称" +position);
|
||||
Log.d(TAG,String.format("clicked: position %s,lineId %s",novelIndex,blockId));
|
||||
|
||||
// openBook();
|
||||
}
|
||||
});
|
||||
initialBookList();
|
||||
|
||||
}
|
||||
|
||||
protected void processArguments(){
|
||||
|
@ -51,38 +96,38 @@ public class Fragment_bangdan extends BasicFragment {
|
|||
@Override
|
||||
public void initData() {
|
||||
|
||||
mData = initData(mData,'F');
|
||||
mAdapter = new BandanAdapter(activity ,mData,R.layout.recycle_list_item_bangdan,new OnItemClickListener()
|
||||
{
|
||||
|
||||
@Override
|
||||
public void onItemClick(View view, int position)
|
||||
{
|
||||
showPaihangbang("分类名称" +position);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemLongClick(View view, int position)
|
||||
{
|
||||
// initDialog(position);
|
||||
// mAdapter.removeData(position);
|
||||
}
|
||||
@Override
|
||||
public void onLinearOutClick(View view, int position,int lineId) {
|
||||
// Toast.makeText(activity, "book "+ bookId + " clicked", Toast.LENGTH_SHORT).show();
|
||||
showProgressDialog(true, "正在加载");
|
||||
|
||||
|
||||
showBookDetail(mData.get(position));
|
||||
// openBook();
|
||||
}
|
||||
});
|
||||
BookSubscribe.getSiteRanks( Constants.SEX,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
|
||||
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
||||
try {
|
||||
mBlocks = GsonUtil.parserNovleBlocks(result,"ranks");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Log.d(TAG, "error on : " + e.getMessage());
|
||||
}
|
||||
handler.sendEmptyMessage(1);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFault(String errorMsg) {
|
||||
//失败
|
||||
Log.d(TAG, "error on : " + errorMsg);
|
||||
handler.sendEmptyMessage(1);
|
||||
}
|
||||
}, getActivity()));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void initViews(){
|
||||
initialBookList();
|
||||
|
||||
}
|
||||
|
||||
void initialBookList() {
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.novelbook.android.Fragments;
|
|||
import android.os.Bundle;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
@ -18,6 +19,7 @@ import com.novelbook.android.netsubscribe.BookSubscribe;
|
|||
import com.novelbook.android.netutils.OnSuccessAndFaultListener;
|
||||
import com.novelbook.android.netutils.OnSuccessAndFaultSub;
|
||||
import com.novelbook.android.utils.Constants;
|
||||
import com.novelbook.android.utils.GsonUtil;
|
||||
import com.novelbook.android.utils.OnItemClickListener;
|
||||
import com.novelbook.android.adapter.BookListAdapter;
|
||||
|
||||
|
@ -34,11 +36,18 @@ import butterknife.BindView;
|
|||
public class Fragment_booklist extends BasicFragment {
|
||||
private static final String EXTR_CATE ="cate" ;
|
||||
private static final String EXTR_PROGRESS ="progress" ;
|
||||
|
||||
private static final String EXTR_FN ="fn" ;
|
||||
private static final String EXTR_BANGDAN ="bangdan" ;
|
||||
private BookListAdapter mAdapter;
|
||||
// private BookListAdapter mAdapter;
|
||||
private List<Novel> mData;;
|
||||
private String cate;
|
||||
private int progress;
|
||||
|
||||
private String fn;
|
||||
private String bangdan;
|
||||
|
||||
private int pageNo=1;
|
||||
private int totalCount;
|
||||
private int pageCount;
|
||||
|
@ -48,7 +57,14 @@ public class Fragment_booklist extends BasicFragment {
|
|||
public Fragment_booklist() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
public static Fragment_booklist newInstance(String fn,String bangdan) {
|
||||
Fragment_booklist fragment = new Fragment_booklist();
|
||||
Bundle args = new Bundle();
|
||||
args.putString(EXTR_FN,fn);
|
||||
args.putString(EXTR_BANGDAN,bangdan);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
public static Fragment_booklist newInstance(String noveType,int progress) {
|
||||
Fragment_booklist fragment = new Fragment_booklist();
|
||||
Bundle args = new Bundle();
|
||||
|
@ -60,48 +76,27 @@ public class Fragment_booklist extends BasicFragment {
|
|||
protected void processArguments(){
|
||||
if (getArguments() != null) {
|
||||
Bundle bundle = getArguments() ;
|
||||
bangdan =bundle.getString(EXTR_BANGDAN);
|
||||
fn= bundle.getString(EXTR_FN);
|
||||
|
||||
if(!TextUtils.isEmpty((fn))){
|
||||
return;
|
||||
}
|
||||
cate = bundle.getString(EXTR_CATE);
|
||||
progress = bundle.getInt(EXTR_PROGRESS);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
public List<Novel> parserJsonArray(String strJson) {
|
||||
|
||||
List<Novel> list = new ArrayList<Novel>();
|
||||
//创建一个Gson对象
|
||||
// Gson gson = new Gson();
|
||||
//创建一个JsonParser
|
||||
JsonParser parser = new JsonParser();
|
||||
//通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象
|
||||
JsonElement el = parser.parse(strJson);
|
||||
|
||||
//把JsonElement对象转换成JsonObject
|
||||
JsonObject jsonObj = null;
|
||||
if (el.isJsonObject()) {
|
||||
jsonObj = el.getAsJsonObject();
|
||||
}
|
||||
|
||||
|
||||
//把JsonElement对象转换成JsonArray
|
||||
JsonArray jsonArray = null;
|
||||
if (el.isJsonArray()) {
|
||||
jsonArray = el.getAsJsonArray();
|
||||
}
|
||||
|
||||
//遍历JsonArray对象
|
||||
Iterator it = jsonArray.iterator();
|
||||
while (it.hasNext()) {
|
||||
JsonElement e = (JsonElement) it.next();
|
||||
//JsonElement转换为JavaBean对象
|
||||
list.add((Novel) gson.fromJson(e, Novel.class));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
@Override
|
||||
protected void fillData() {
|
||||
|
||||
mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_shudan, new OnItemClickListener() {
|
||||
if(mData==null){
|
||||
return;
|
||||
}
|
||||
mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_horizon, new OnItemClickListener() {
|
||||
|
||||
@Override
|
||||
public void onItemClick(View view, int position) {
|
||||
|
@ -133,15 +128,76 @@ public class Fragment_booklist extends BasicFragment {
|
|||
public void initData() {
|
||||
|
||||
showProgressDialog(true, "正在加载");
|
||||
|
||||
Log.d(TAG,String.format("fn is %s",fn) );
|
||||
|
||||
if(!TextUtils.isEmpty(bangdan) && !TextUtils.isEmpty(fn)){ //榜单
|
||||
|
||||
BookSubscribe.getSiteRankDetail(fn,pageNo,Constants.SEX,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
|
||||
try {
|
||||
JSONObject jsonObject = new JSONObject(result);
|
||||
String resultstr = jsonObject.getString("rank") ;
|
||||
|
||||
mData = GsonUtil. parserJsonArray(resultstr,Constants.BLOCK_TITLE_NOVELS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
handler.sendEmptyMessage(1);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFault(String errorMsg) {
|
||||
//失败
|
||||
Log.d(TAG, "error on get firstpage: " + errorMsg);
|
||||
handler.sendEmptyMessage(1);
|
||||
}
|
||||
}, getActivity()));
|
||||
|
||||
|
||||
}else if(!TextUtils.isEmpty(fn)){ //首页 更多
|
||||
|
||||
BookSubscribe.getNovelPaihang(fn,Constants.SEX,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
|
||||
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
||||
try {
|
||||
|
||||
mData = GsonUtil. parserJsonArray(result,Constants.BLOCK_TITLE_NOVELS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
handler.sendEmptyMessage(1);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFault(String errorMsg) {
|
||||
//失败
|
||||
Log.d(TAG, "error on get firstpage: " + errorMsg);
|
||||
handler.sendEmptyMessage(1);
|
||||
}
|
||||
}, getActivity()));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
|
||||
BookSubscribe.getCateNovelList(cate,pageNo,Constants.SEX,progress,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
|
||||
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
||||
try {
|
||||
JSONObject jsonObject = new JSONObject(result);
|
||||
String resultstr = jsonObject.getString("ns");
|
||||
mData = parserJsonArray(resultstr);
|
||||
|
||||
mData = GsonUtil. parserJsonArray(result,Constants.BLOCK_TITLE_NOVELS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
@ -33,7 +33,9 @@ import com.novelbook.android.db.SiteRule;
|
|||
import com.novelbook.android.netsubscribe.BookSubscribe;
|
||||
import com.novelbook.android.netutils.OnSuccessAndFaultListener;
|
||||
import com.novelbook.android.netutils.OnSuccessAndFaultSub;
|
||||
import com.novelbook.android.utils.Constants;
|
||||
import com.novelbook.android.utils.CyclePageIndicator;
|
||||
import com.novelbook.android.utils.GsonUtil;
|
||||
import com.novelbook.android.utils.ImageUtil;
|
||||
import com.novelbook.android.utils.MyViewPager;
|
||||
import com.novelbook.android.utils.OnItemClickListener;
|
||||
|
@ -137,52 +139,20 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener
|
|||
return R.layout.fragment_jingxuan;
|
||||
}
|
||||
|
||||
public List<NovelBlock> parserJsonArray(String strJson) {
|
||||
|
||||
List<NovelBlock> list = new ArrayList<NovelBlock>();
|
||||
//创建一个Gson对象
|
||||
// Gson gson = new Gson();
|
||||
//创建一个JsonParser
|
||||
JsonParser parser = new JsonParser();
|
||||
//通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象
|
||||
JsonElement el = parser.parse(strJson);
|
||||
|
||||
//把JsonElement对象转换成JsonObject
|
||||
JsonObject jsonObj = null;
|
||||
if (el.isJsonObject()) {
|
||||
jsonObj = el.getAsJsonObject();
|
||||
}
|
||||
|
||||
|
||||
//把JsonElement对象转换成JsonArray
|
||||
JsonArray jsonArray = null;
|
||||
if (el.isJsonArray()) {
|
||||
jsonArray = el.getAsJsonArray();
|
||||
}
|
||||
|
||||
//遍历JsonArray对象
|
||||
Iterator it = jsonArray.iterator();
|
||||
while (it.hasNext()) {
|
||||
JsonElement e = (JsonElement) it.next();
|
||||
//JsonElement转换为JavaBean对象
|
||||
list.add((NovelBlock) gson.fromJson(e, NovelBlock.class));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initData() {
|
||||
|
||||
showProgressDialog(true, "正在加载");
|
||||
BookSubscribe.getFirstPage(new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||
BookSubscribe.getFirstPage(Constants.SEX,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
|
||||
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
||||
try {
|
||||
JSONObject jsonObject = new JSONObject(result);
|
||||
String resultstr = jsonObject.getString("blocks");
|
||||
mBlocks = parserJsonArray(resultstr);
|
||||
|
||||
mBlocks = GsonUtil.parserNovleBlocks(result,"blocks");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -474,9 +444,13 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener
|
|||
@BindView(R.id.rvFinishG)
|
||||
RecyclerView rvFinishG;
|
||||
|
||||
int getSpanCnt(){
|
||||
return Constants.NOVEL_SPAN_CNT;
|
||||
}
|
||||
|
||||
void initialBookList() {
|
||||
|
||||
int spanCnt =4;
|
||||
int spanCnt =getSpanCnt();
|
||||
OnItemClickListener onItemClickListener = new OnItemClickListener() {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -29,9 +29,7 @@ import com.novelbook.android.Fragments.Fragment_Shelf;
|
|||
import com.novelbook.android.Fragments.Fragment_bookStore;
|
||||
import com.novelbook.android.Fragments.Fragment_paihang;
|
||||
|
||||
import org.xutils.common.Callback;
|
||||
import org.xutils.http.RequestParams;
|
||||
import org.xutils.x;
|
||||
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
|
|
@ -6,7 +6,7 @@ import android.content.Context;
|
|||
import com.novelbook.android.utils.PageFactory;
|
||||
|
||||
import org.litepal.LitePal;
|
||||
import org.xutils.x;
|
||||
|
||||
|
||||
import io.alterac.blurkit.BlurKit;
|
||||
|
||||
|
@ -19,8 +19,7 @@ public class MyApp extends Application {
|
|||
Config.createConfig(this);
|
||||
PageFactory.createPageFactory(this);
|
||||
|
||||
x.Ext.init(this);
|
||||
x.Ext.setDebug(false); //输出debug日志,开启会影响性能
|
||||
|
||||
// BlurKit.init(this);
|
||||
LitePal.initialize(this);
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ public class activity_cates extends Activity_base {
|
|||
{
|
||||
|
||||
|
||||
Toast.makeText(activity_cates.this, " ", Toast.LENGTH_LONG).show();
|
||||
Toast.makeText(activity_cates.this, " 请求失败", Toast.LENGTH_LONG).show();
|
||||
} else if (msg.what == 3) {
|
||||
|
||||
Toast.makeText(activity_cates.this, " ", Toast.LENGTH_LONG).show();
|
||||
|
@ -95,7 +95,8 @@ public class activity_cates extends Activity_base {
|
|||
|
||||
@Override
|
||||
public void onItemClick(View view, int position) {
|
||||
showCateList(mCataloges.get(position).getName());
|
||||
Cataloge cl = cates.get(position);
|
||||
showCateList(cl.getName());
|
||||
|
||||
}
|
||||
});
|
||||
|
@ -178,7 +179,7 @@ public class activity_cates extends Activity_base {
|
|||
public void onFault(String errorMsg) {
|
||||
//失败
|
||||
Log.d(TAG, "error on get firstpage: " + errorMsg);
|
||||
handler.sendEmptyMessage(1);
|
||||
handler.sendEmptyMessage(2);
|
||||
}
|
||||
}, this));
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ public interface HttpApi {
|
|||
Observable<ResponseBody> getNovelRule(@Path("siteDomain") String siteDomain);
|
||||
|
||||
@GET("page/index")
|
||||
Observable<ResponseBody> getFirstPage();
|
||||
Observable<ResponseBody> getFirstPage(@Query("sex") int Sex);
|
||||
|
||||
//分类的总榜,显示每个小说分类有多少本书
|
||||
@GET("page/noveltype")
|
||||
|
@ -63,7 +63,22 @@ public interface HttpApi {
|
|||
@GET("search/nt/{cate}/{pageno}")
|
||||
Observable<ResponseBody> getCateNovels(@Path("cate") String cate, @Path("pageno") int pageno, @Query("sex") int sex, @Query("progress") int progress);
|
||||
|
||||
//小说排行 http://xiaoshuofenxiang.com/api/page/rank?fn=hot
|
||||
@GET("page/rank")
|
||||
Observable<ResponseBody> getNovelPaihang(@Query("fn") String fn,@Query("sex") int Sex);
|
||||
|
||||
//相关小说 http://xiaoshuofenxiang.com/api/n/6/about
|
||||
@GET("n/{novelId}/about")
|
||||
Observable<ResponseBody> getNovelsRelated(@Path("novelId") int novelId,@Query("sex") int Sex);
|
||||
//同作者其它小说http://xiaoshuofenxiang.com/api/n/7/author
|
||||
@GET("n/{novelId}/author")
|
||||
Observable<ResponseBody> getNovelsSameAuthor(@Path("novelId") int novelId,@Query("sex") int Sex);
|
||||
//站点榜单http://xiaoshuofenxiang.com/api/page/siteranks?sex=1
|
||||
@GET("page/siteranks")
|
||||
Observable<ResponseBody> getSiteRanks(@Query("sex") int Sex);
|
||||
//http://xiaoshuofenxiang.com/api/page/siterank?fn=qidian-yuanchuangfengyunbang&pn=3
|
||||
@GET("page/siterank?fn=qidian-yuanchuangfengyunbang&pn=3")
|
||||
Observable<ResponseBody> getSiteRankDetail(@Query("fn")String fn,@Query("pn")int pageNo,@Query("sex") int Sex);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -31,8 +31,8 @@ public class BookSubscribe {
|
|||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||
}
|
||||
|
||||
public static void getFirstPage(DisposableObserver<ResponseBody> subscriber){
|
||||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getFirstPage();
|
||||
public static void getFirstPage(int sex,DisposableObserver<ResponseBody> subscriber){
|
||||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getFirstPage(sex);
|
||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||
}
|
||||
public static void getCates(int sex,DisposableObserver<ResponseBody> subscriber){
|
||||
|
@ -43,4 +43,28 @@ public class BookSubscribe {
|
|||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getCateNovels(cate,pageno,sex,progress);
|
||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||
}
|
||||
|
||||
public static void getNovelPaihang(String fn,int sex,DisposableObserver<ResponseBody> subscriber){
|
||||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getNovelPaihang(fn,sex);
|
||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||
}
|
||||
|
||||
public static void getNovelsRelated(int novelId,int sex,DisposableObserver<ResponseBody> subscriber){
|
||||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getNovelsRelated(novelId,sex);
|
||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||
}
|
||||
|
||||
public static void getNovelsSameAuthor(int novelId,int sex,DisposableObserver<ResponseBody> subscriber){
|
||||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getNovelsSameAuthor(novelId,sex);
|
||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||
}
|
||||
|
||||
public static void getSiteRanks( int sex,DisposableObserver<ResponseBody> subscriber){
|
||||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getSiteRanks(sex);
|
||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||
}
|
||||
public static void getSiteRankDetail( String fn,int pageNo,int sex,DisposableObserver<ResponseBody> subscriber){
|
||||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getSiteRankDetail(fn,pageNo,sex);
|
||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import com.novelbook.android.utils.CommonUtil;
|
|||
import com.novelbook.android.utils.FileUtils;
|
||||
|
||||
|
||||
import org.xutils.common.util.FileUtil;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
|
|
@ -130,7 +130,10 @@ public class OnSuccessAndFaultSub extends DisposableObserver<ResponseBody>
|
|||
} else if (code == 401) {
|
||||
// ToastManager.showShortToast("请求的地址不存在");
|
||||
mOnSuccessAndFaultListener.onFault("权限验证错误");
|
||||
} else {
|
||||
} else if(code == 500) {
|
||||
// ToastManager.showShortToast("请求失败");
|
||||
mOnSuccessAndFaultListener.onFault("服务错误");
|
||||
}else {
|
||||
// ToastManager.showShortToast("请求失败");
|
||||
mOnSuccessAndFaultListener.onFault("请求失败");
|
||||
}
|
||||
|
|
|
@ -5,10 +5,12 @@ import android.support.v7.widget.RecyclerView;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.novelbook.android.R;
|
||||
import com.novelbook.android.bean.NovelBlock;
|
||||
import com.novelbook.android.db.Novel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -23,10 +25,10 @@ import butterknife.ButterKnife;
|
|||
private final int IMAGE_VIEW = 3;
|
||||
|
||||
private Context context;
|
||||
private List<Novel> mDatas = new ArrayList<Novel>();
|
||||
private List<NovelBlock> mDatas = new ArrayList<NovelBlock>();
|
||||
private OnItemClickListener mOnItemClickLitener;
|
||||
private int listItemID;
|
||||
public BandanAdapter(Context context, List<Novel> mDatas, int listItemID, OnItemClickListener clickLitener) {
|
||||
public BandanAdapter(Context context, List<NovelBlock> mDatas, int listItemID, OnItemClickListener clickLitener) {
|
||||
this.context = context;
|
||||
this.mDatas = mDatas;
|
||||
this.mOnItemClickLitener = clickLitener;
|
||||
|
@ -60,7 +62,7 @@ import butterknife.ButterKnife;
|
|||
|
||||
|
||||
|
||||
public void setParameters(List<Novel> mDatas,int listItemID ) {
|
||||
public void setParameters(List<NovelBlock> mDatas,int listItemID ) {
|
||||
this.mDatas = mDatas;
|
||||
this.listItemID = listItemID;
|
||||
}
|
||||
|
@ -73,22 +75,56 @@ import butterknife.ButterKnife;
|
|||
@Override
|
||||
public void onBindViewHolder(MyViewHolder holder, int position)
|
||||
{
|
||||
holder.tvCateName .setText(mDatas.get(0).getNovelType());
|
||||
holder.ll1.setVisibility(View.GONE);
|
||||
holder.ll2.setVisibility(View.GONE);
|
||||
holder.ll3.setVisibility(View.GONE);
|
||||
NovelBlock nb = mDatas.get(position);
|
||||
holder.tvCateName.setText(nb.getName());
|
||||
if(nb==null){return;}
|
||||
if(nb.getNs().size()>0) {
|
||||
|
||||
holder.tvTitle.setText(mDatas.get(0).getName());
|
||||
holder.tvAuthor.setText(mDatas.get(0).getAuthor());
|
||||
holder.tvCate.setText(mDatas.get(0).getNovelType());
|
||||
holder.tvDesc.setText(mDatas.get(0).getDesc());
|
||||
Novel novel = nb.getNs().get(0);
|
||||
if(novel!=null) {
|
||||
holder.ll1.setVisibility(View.VISIBLE);
|
||||
|
||||
holder.tvTitle.setText(novel.getName());
|
||||
holder.tvAuthor.setText(novel.getAuthor());
|
||||
holder.tvCate.setText(novel.getNovelType());
|
||||
holder.tvDesc.setText(novel.getDesc());
|
||||
ImageUtil.loadImage(context,novel.getCover(),holder.imageView);
|
||||
}
|
||||
|
||||
}
|
||||
if(nb.getNs().size()>1) {
|
||||
|
||||
Novel novel = nb.getNs().get(1);
|
||||
if(novel!=null) {
|
||||
holder.ll2.setVisibility(View.VISIBLE);
|
||||
|
||||
holder.tvTitle2.setText(novel.getName());
|
||||
holder.tvAuthor2.setText(novel.getAuthor());
|
||||
holder.tvCate2.setText(novel.getNovelType());
|
||||
holder.tvDesc2.setText(novel.getDesc());
|
||||
ImageUtil.loadImage(context,novel.getCover(),holder.imageView2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(nb.getNs().size()>2) {
|
||||
|
||||
Novel novel = nb.getNs().get(2);
|
||||
if(novel!=null) {
|
||||
holder.ll3.setVisibility(View.VISIBLE);
|
||||
holder.tvTitle3.setText(novel.getName());
|
||||
holder.tvAuthor3.setText(novel.getAuthor());
|
||||
holder.tvCate3.setText(novel.getNovelType());
|
||||
holder.tvDesc3.setText(novel.getDesc());
|
||||
ImageUtil.loadImage(context,novel.getCover(),holder.imageView3);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
holder.tvTitle2.setText(mDatas.get(1).getName());
|
||||
holder.tvAuthor2.setText(mDatas.get(1).getAuthor());
|
||||
holder.tvCate2.setText(mDatas.get(1).getNovelType());
|
||||
holder.tvDesc2.setText(mDatas.get(1).getDesc());
|
||||
|
||||
holder.tvTitle3.setText(mDatas.get(2).getName());
|
||||
holder.tvAuthor3.setText(mDatas.get(2).getAuthor());
|
||||
holder.tvCate3.setText(mDatas.get(2).getNovelType());
|
||||
holder.tvDesc3.setText(mDatas.get(2).getDesc());
|
||||
|
||||
// 如果设置了回调,则设置点击事件
|
||||
if (mOnItemClickLitener != null)
|
||||
|
@ -120,7 +156,7 @@ import butterknife.ButterKnife;
|
|||
public void onClick(View v)
|
||||
{
|
||||
int pos = position;
|
||||
mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,1);
|
||||
mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,0);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -129,7 +165,7 @@ import butterknife.ButterKnife;
|
|||
public void onClick(View v)
|
||||
{
|
||||
int pos = position;
|
||||
mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,2);
|
||||
mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,1);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -138,7 +174,7 @@ import butterknife.ButterKnife;
|
|||
public void onClick(View v)
|
||||
{
|
||||
int pos = position;
|
||||
mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,3);
|
||||
mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,2);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -193,7 +229,12 @@ import butterknife.ButterKnife;
|
|||
LinearLayout ll2;
|
||||
@BindView(R.id.ll3)
|
||||
LinearLayout ll3;
|
||||
|
||||
@BindView(R.id.imageView)
|
||||
ImageView imageView;
|
||||
@BindView(R.id.imageView2)
|
||||
ImageView imageView2;
|
||||
@BindView(R.id.imageView3)
|
||||
ImageView imageView3;
|
||||
public MyViewHolder(View view)
|
||||
{
|
||||
super(view);
|
||||
|
|
|
@ -4,13 +4,17 @@ import android.app.Activity;
|
|||
import android.content.Context;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Display;
|
||||
import android.view.TextureView;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
|
||||
|
@ -260,6 +264,15 @@ public class CommonUtil {
|
|||
return versionName;
|
||||
}
|
||||
|
||||
public static String getDateString(long time,String format){
|
||||
String f = TextUtils.isEmpty(format) ?"yyyy年MM月dd日 HH:mm:ss":format;
|
||||
Date dt = new Date(time);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
|
||||
return sdf.format(dt);
|
||||
}
|
||||
public static String getDateString(long time){
|
||||
|
||||
return getDateString(time,"");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.novelbook.android.utils;
|
||||
|
||||
public class Constants {
|
||||
public static final String BLOCK_TITLE_NOVELS = "ns";
|
||||
public static final int NOVEL_SPAN_CNT =3 ; //grid columns
|
||||
public static int SEX=1;
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
package com.novelbook.android.utils;
|
||||
|
||||
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.os.Build;
|
||||
import android.renderscript.RSRuntimeException;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
|
||||
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.security.MessageDigest;
|
||||
|
||||
import jp.wasabeef.glide.transformations.internal.FastBlur;
|
||||
import jp.wasabeef.glide.transformations.internal.RSBlur;
|
||||
|
||||
|
||||
public class GaoSiTransForm extends BitmapTransformation {
|
||||
private static String STRING_CHARSET_NAME = "UTF-8";
|
||||
private static final String ID = "GaoSiTransFormtion";
|
||||
private static Charset CHARSET = Charset.forName(STRING_CHARSET_NAME);
|
||||
private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
|
||||
|
||||
private static int MAX_RADIUS = 25;
|
||||
private static int DEFAULT_DOWN_SAMPLING = 1;
|
||||
|
||||
private Context mContext;
|
||||
private BitmapPool mBitmapPool;
|
||||
|
||||
private int mRadius;
|
||||
private int mSampling;
|
||||
|
||||
public GaoSiTransForm(Context context) {
|
||||
this(context, Glide.get(context).getBitmapPool(), MAX_RADIUS, DEFAULT_DOWN_SAMPLING);
|
||||
}
|
||||
|
||||
public GaoSiTransForm(Context context, BitmapPool pool) {
|
||||
this(context, pool, MAX_RADIUS, DEFAULT_DOWN_SAMPLING);
|
||||
}
|
||||
|
||||
public GaoSiTransForm(Context context, BitmapPool pool, int radius) {
|
||||
this(context, pool, radius, DEFAULT_DOWN_SAMPLING);
|
||||
}
|
||||
|
||||
public GaoSiTransForm(Context context, int radius) {
|
||||
this(context, Glide.get(context).getBitmapPool(), radius, DEFAULT_DOWN_SAMPLING);
|
||||
}
|
||||
|
||||
public GaoSiTransForm(Context context, int radius, int sampling) {
|
||||
this(context, Glide.get(context).getBitmapPool(), radius, sampling);
|
||||
}
|
||||
|
||||
public GaoSiTransForm(Context context, BitmapPool pool, int radius, int sampling) {
|
||||
mContext = context.getApplicationContext();
|
||||
mBitmapPool = pool;
|
||||
mRadius = radius;
|
||||
mSampling = sampling;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int
|
||||
outWidth, int outHeight) {
|
||||
Bitmap source = toTransform;
|
||||
|
||||
int width = source.getWidth();
|
||||
int height = source.getHeight();
|
||||
int scaledWidth = width / mSampling;
|
||||
int scaledHeight = height / mSampling;
|
||||
|
||||
Bitmap bitmap = mBitmapPool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);
|
||||
if (bitmap == null) {
|
||||
bitmap = Bitmap.createBitmap(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);
|
||||
}
|
||||
|
||||
Canvas canvas = new Canvas(bitmap);
|
||||
canvas.scale(1 / (float) mSampling, 1 / (float) mSampling);
|
||||
Paint paint = new Paint();
|
||||
paint.setFlags(Paint.FILTER_BITMAP_FLAG);
|
||||
canvas.drawBitmap(source, 0, 0, paint);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
try {
|
||||
bitmap = RSBlur.blur(mContext, bitmap, mRadius);
|
||||
} catch (RSRuntimeException e) {
|
||||
bitmap = FastBlur.blur(bitmap, mRadius, true);
|
||||
}
|
||||
} else {
|
||||
bitmap = FastBlur.blur(bitmap, mRadius, true);
|
||||
}
|
||||
|
||||
//return BitmapResource.obtain(bitmap, mBitmapPool);
|
||||
return bitmap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return ID.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return obj instanceof GaoSiTransForm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDiskCacheKey(MessageDigest messageDigest) {
|
||||
messageDigest.update(ID_BYTES);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,12 +1,23 @@
|
|||
package com.novelbook.android.utils;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.novelbook.android.bean.NovelBlock;
|
||||
import com.novelbook.android.db.Novel;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
public class GsonUtil {
|
||||
|
||||
private static Gson gson = new Gson();
|
||||
public static Novel getNovel(String json){
|
||||
Novel nv = new Novel();
|
||||
try {
|
||||
|
@ -27,4 +38,72 @@ public class GsonUtil {
|
|||
}
|
||||
return nv;
|
||||
}
|
||||
public static List<NovelBlock> parserNovleBlocks(String restult,String blockName ) throws JSONException {
|
||||
JSONObject jsonObject = new JSONObject(restult);
|
||||
String strJson = jsonObject.getString(blockName);
|
||||
List<NovelBlock> list = new ArrayList<NovelBlock>();
|
||||
//创建一个Gson对象
|
||||
// Gson gson = new Gson();
|
||||
//创建一个JsonParser
|
||||
JsonParser parser = new JsonParser();
|
||||
//通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象
|
||||
JsonElement el = parser.parse(strJson);
|
||||
|
||||
//把JsonElement对象转换成JsonObject
|
||||
JsonObject jsonObj = null;
|
||||
if (el.isJsonObject()) {
|
||||
jsonObj = el.getAsJsonObject();
|
||||
}
|
||||
|
||||
|
||||
//把JsonElement对象转换成JsonArray
|
||||
JsonArray jsonArray = null;
|
||||
if (el.isJsonArray()) {
|
||||
jsonArray = el.getAsJsonArray();
|
||||
}
|
||||
|
||||
//遍历JsonArray对象
|
||||
Iterator it = jsonArray.iterator();
|
||||
while (it.hasNext()) {
|
||||
JsonElement e = (JsonElement) it.next();
|
||||
//JsonElement转换为JavaBean对象
|
||||
list.add((NovelBlock) gson.fromJson(e, NovelBlock.class));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
public static List<Novel> parserJsonArray(String restult,String blockName ) throws JSONException {
|
||||
|
||||
JSONObject jsonObject = new JSONObject(restult);
|
||||
String resultstr = jsonObject.getString(blockName);
|
||||
|
||||
List<Novel> list = new ArrayList<Novel>();
|
||||
//创建一个Gson对象
|
||||
// Gson gson = new Gson();
|
||||
//创建一个JsonParser
|
||||
JsonParser parser = new JsonParser();
|
||||
//通过JsonParser对象可以把json格式的字符串解析成一个JsonElement对象
|
||||
JsonElement el = parser.parse(resultstr);
|
||||
|
||||
//把JsonElement对象转换成JsonObject
|
||||
JsonObject jsonObj = null;
|
||||
if (el.isJsonObject()) {
|
||||
jsonObj = el.getAsJsonObject();
|
||||
}
|
||||
|
||||
|
||||
//把JsonElement对象转换成JsonArray
|
||||
JsonArray jsonArray = null;
|
||||
if (el.isJsonArray()) {
|
||||
jsonArray = el.getAsJsonArray();
|
||||
}
|
||||
|
||||
//遍历JsonArray对象
|
||||
Iterator it = jsonArray.iterator();
|
||||
while (it.hasNext()) {
|
||||
JsonElement e = (JsonElement) it.next();
|
||||
//JsonElement转换为JavaBean对象
|
||||
list.add((Novel) gson.fromJson(e, Novel.class));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,23 +33,25 @@
|
|||
android:fitsSystemWindows="true"
|
||||
app:contentScrim="?attr/colorPrimary"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed"
|
||||
app:collapsedTitleGravity="center"
|
||||
app:expandedTitleGravity="bottom"
|
||||
app:expandedTitleTextAppearance="@style/TitleText"
|
||||
app:toolbarId="@+id/toolbar">
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/login_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="240dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingBottom="0dp"
|
||||
app:layout_collapseMode="pin"
|
||||
app:layout_collapseParallaxMultiplier="0.7">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/head_img2"
|
||||
android:id="@+id/imageViewHead"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:src="@mipmap/side_bg2"
|
||||
android:alpha="0.6"
|
||||
android:scaleType="fitXY"
|
||||
/>
|
||||
|
||||
|
||||
|
@ -58,20 +60,20 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:gravity="bottom"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginLeft="25dp"
|
||||
android:layout_marginLeft="30dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="120dp"
|
||||
android:layout_margin="10dp"
|
||||
style="@style/NovelImage"
|
||||
android:layout_weight="0"
|
||||
android:gravity="left"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/side_bg" />
|
||||
android:layout_height="100dp"
|
||||
android:layout_width="80dp"
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -83,36 +85,34 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
style="@style/TextViewHead.bold"
|
||||
android:text="射雕英雄传"
|
||||
android:layout_height="30dp"
|
||||
style="@style/TextViewNovelTitle.horizon.bold"
|
||||
android:text=" "
|
||||
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/desc"
|
||||
style="@style/TextViewHead"
|
||||
android:maxLines="2"
|
||||
android:text="xxxxxxxxxxxxxxxxxxxxx"
|
||||
style="@style/TextViewNovelDesc.head"
|
||||
android:text=" "
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/author"
|
||||
style="@style/TextViewHead"
|
||||
android:text="金庸"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/category"
|
||||
style="@style/TextViewHead"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:text="武侠小说"
|
||||
/>
|
||||
style="@style/TextViewNovelType"
|
||||
android:text="aaa"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/author"
|
||||
style="@style/TextViewNovelAuthor"
|
||||
android:text="aaa"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
@ -126,8 +126,13 @@
|
|||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:layout_height="40dp"
|
||||
android:minHeight="40dp"
|
||||
app:layout_collapseMode="pin"
|
||||
app:contentInsetLeft="0dp"
|
||||
app:contentInsetStart="0dp"
|
||||
|
||||
|
||||
app:popupTheme="@style/ToolBarTheme.PopupOverlay" >
|
||||
|
||||
<Button android:id="@+id/mTextMessage"
|
||||
|
|
|
@ -72,12 +72,15 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
android:orientation="vertical"
|
||||
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
|
@ -94,10 +97,23 @@
|
|||
android:text="简介" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
<com.timqi.collapsibletextview.CollapsibleTextView
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/txtDesc2"
|
||||
style="@style/TextViewDesc"
|
||||
android:padding="5dp"
|
||||
android:layout_marginLeft="20dp"
|
||||
app:collapsedLines="2"
|
||||
app:collapsedText=" 》》》"
|
||||
app:expandedText=" 《《《"
|
||||
app:suffixColor="#0000ff"
|
||||
app:suffixTrigger="true"
|
||||
|
||||
/>
|
||||
<TextView
|
||||
android:visibility="gone"
|
||||
android:id="@+id/txtDesc22"
|
||||
style="@style/TextViewDesc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
|
@ -108,7 +124,9 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_gravity="center">
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
|
@ -130,7 +148,9 @@
|
|||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
|
@ -151,29 +171,45 @@
|
|||
android:id="@+id/llCate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="5dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="0"
|
||||
android:layout_marginRight="5dp"
|
||||
android:src="@drawable/ic_mood_black_24dp" />
|
||||
<TextView
|
||||
style="@style/TextViewDesc"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="0"
|
||||
android:src="@drawable/ic_mood_black_24dp" />
|
||||
android:textSize="11sp"
|
||||
android:text="目录" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:id="@+id/txtLatestUpdate"
|
||||
style="@style/TextViewDesc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text=""
|
||||
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/txtLatestCate"
|
||||
style="@style/TextViewDesc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="最近更新:2/20/2019 5:06:39 PM"
|
||||
android:text=""
|
||||
|
||||
/>
|
||||
|
||||
|
@ -181,13 +217,7 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
style="@style/TextViewDesc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_weight="0"
|
||||
android:text=">>" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
@ -254,11 +284,11 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
style="@style/TextViewTitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/tvAuthorMore"
|
||||
style="@style/NovelBlockTitle"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:layout_weight="1"
|
||||
android:text="作者其他作品" />
|
||||
android:text=" 其他作品" />
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/rvBooklist"
|
||||
|
@ -272,8 +302,30 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTonglei"
|
||||
style="@style/NovelBlockTitle"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:layout_weight="1"
|
||||
android:text="同类推荐" />
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/rvBooklistRelated"
|
||||
android:divider="#ffff0000"
|
||||
android:dividerHeight="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:nestedScrollingEnabled="false"
|
||||
android:paddingBottom="50dp"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:nestedScrollingEnabled="false"
|
||||
|
||||
android:paddingTop="10dp"
|
||||
/>
|
||||
</FrameLayout>
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
<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"
|
||||
style="@style/llOutside.vertical"
|
||||
tools:context=".Fragments.Fragment_jingxuan">
|
||||
|
||||
<android.support.v4.widget.SwipeRefreshLayout
|
||||
|
@ -22,10 +20,11 @@
|
|||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingBottom="30dp"
|
||||
android:orientation="vertical">
|
||||
android:layout_marginBottom="50dp"
|
||||
>
|
||||
|
||||
<com.youth.banner.Banner
|
||||
android:id="@+id/banner"
|
||||
|
@ -39,34 +38,25 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
|
||||
android:orientation="vertical">
|
||||
<!-- 推荐 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_margin="6dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
style="@style/NovelBlockHead"
|
||||
>
|
||||
<ImageView
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="left"
|
||||
style="@style/NovelBlockImg"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_weight="1"
|
||||
style="@style/NovelBlockTitle"
|
||||
android:text="重磅推荐"
|
||||
android:textColor="#212121" />
|
||||
/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonMoreTuijian"
|
||||
style="@style/buttonRightMore"
|
||||
android:text="更多>"
|
||||
android:text="更多>>"
|
||||
android:visibility="gone"
|
||||
|
||||
/>
|
||||
|
@ -107,33 +97,24 @@
|
|||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_margin="6dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
style="@style/NovelBlockHead"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/imageBlock1"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="left"
|
||||
style="@style/NovelBlockImg"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBlock1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_weight="1"
|
||||
android:text="火热新书"
|
||||
android:textColor="#212121" />
|
||||
style="@style/NovelBlockTitle"
|
||||
android:text="block"
|
||||
/>
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonMore1"
|
||||
|
||||
style="@style/buttonRightMore"
|
||||
android:text="更多>"
|
||||
|
||||
/>
|
||||
|
||||
|
@ -169,34 +150,28 @@
|
|||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_margin="6dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
style="@style/NovelBlockHead"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/imageBlock2"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="left"
|
||||
style="@style/NovelBlockImg"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBlock2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_weight="1"
|
||||
android:text="热门连载"
|
||||
android:textColor="#212121" />
|
||||
style="@style/NovelBlockTitle"
|
||||
android:text="block"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonMore2"
|
||||
style="@style/buttonRightMore"
|
||||
android:text="更多>"
|
||||
|
||||
|
||||
/>
|
||||
|
||||
|
@ -236,33 +211,25 @@
|
|||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_margin="6dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
style="@style/NovelBlockHead"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/imageBlock3"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="left"
|
||||
style="@style/NovelBlockImg"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBlock3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_weight="1"
|
||||
android:text="完本精选"
|
||||
android:textColor="#212121" />
|
||||
style="@style/NovelBlockTitle"
|
||||
android:text="block"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonMore3"
|
||||
style="@style/buttonRightMore"
|
||||
android:text="更多>"
|
||||
|
||||
|
||||
/>
|
||||
|
||||
|
@ -301,34 +268,28 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_margin="6dp"
|
||||
android:orientation="horizontal">
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
style="@style/NovelBlockHead"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/imageBlock4"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="left"
|
||||
style="@style/NovelBlockImg"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBlock4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_weight="1"
|
||||
android:text="完本精选"
|
||||
android:textColor="#212121" />
|
||||
style="@style/NovelBlockTitle"
|
||||
android:text="block"
|
||||
/>
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonMore4"
|
||||
style="@style/buttonRightMore"
|
||||
android:text="更多>"
|
||||
|
||||
|
||||
/>
|
||||
|
||||
|
@ -356,7 +317,7 @@
|
|||
<LinearLayout style="@style/llGraySplit" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
|
||||
</LinearLayout>
|
||||
<!-- <include layout="@layout/fragment_jingxuan_book_list"></include> -->
|
||||
|
||||
|
|
|
@ -7,58 +7,33 @@
|
|||
android:background="@drawable/item_selector"
|
||||
android:clickable="true"
|
||||
android:layout_weight="1"
|
||||
android:padding="0dp">
|
||||
<FrameLayout
|
||||
android:layout_marginBottom="5dp"
|
||||
android:padding="2dp">
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
style="@style/NovelImage"
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
style="@style/NovelImage"
|
||||
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
<CheckBox
|
||||
android:id="@+id/id_check_box"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right"
|
||||
android:layout_marginTop="5dp"
|
||||
android:visibility="gone"
|
||||
android:text=""/>
|
||||
</FrameLayout>
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
<CheckBox
|
||||
android:id="@+id/id_check_box"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right"
|
||||
android:layout_marginTop="5dp"
|
||||
android:visibility="gone"
|
||||
android:text=""/>
|
||||
</FrameLayout>
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
style="@style/TextViewNovelTitle"
|
||||
android:layout_width="75dp"
|
||||
android:gravity="top|center"
|
||||
android:text="天龙八部天龙八部天龙八部"
|
||||
android:lines="1"
|
||||
android:maxLength="5"
|
||||
android:textColor="#212121" />
|
||||
<!--
|
||||
<TextView
|
||||
android:visibility="gone"
|
||||
android:id="@+id/desc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:gravity="center"
|
||||
android:text=""
|
||||
android:textColor="#212121" />
|
||||
<TextView
|
||||
android:visibility="gone"
|
||||
android:id="@+id/author"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:gravity="center"
|
||||
android:text=""
|
||||
android:textColor="#212121" />
|
||||
<TextView
|
||||
android:visibility="gone"
|
||||
android:id="@+id/category"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="武侠小说"
|
||||
android:textColor="@color/colorAccent" />
|
||||
-->
|
||||
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -3,23 +3,27 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout style="@style/llGraySplit"/>
|
||||
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_margin="2dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvCateName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:layout_weight="1"
|
||||
style="@style/NovelBlockTitle"
|
||||
android:text="完本精选"
|
||||
android:textColor="#212121" />
|
||||
|
||||
/>
|
||||
<TextView
|
||||
style="@style/tvRightMore"
|
||||
android:text="更多"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -31,68 +35,58 @@
|
|||
android:background="@drawable/item_selector"
|
||||
android:clickable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_margin="10dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="left"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:text="射雕英雄传"
|
||||
android:textColor="#212121" />
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
style="@style/NovelImage.horizon"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:orientation="horizontal">
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/author"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/title"
|
||||
style="@style/TextViewNovelTitle.horizon" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="金庸"
|
||||
android:textColor="#212121" />
|
||||
android:layout_marginTop="2dp"
|
||||
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:id="@+id/category"
|
||||
style="@style/TextViewNovelType" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/author"
|
||||
style="@style/TextViewNovelAuthor" />
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/category"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:text="武侠小说"
|
||||
android:textColor="@color/colorAccent" />
|
||||
android:id="@+id/desc"
|
||||
style="@style/TextViewNovelDesc"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/desc"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:gravity="center"
|
||||
android:text="武侠小说,武侠小说,著名的金庸作品 "
|
||||
android:textColor="@color/common_google_signin_btn_text_light"
|
||||
android:textSize="11sp" />
|
||||
|
||||
</LinearLayout>
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
</LinearLayout>
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll2"
|
||||
|
@ -102,69 +96,58 @@
|
|||
android:background="@drawable/item_selector"
|
||||
android:clickable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_margin="10dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="left"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:text="射雕英雄传"
|
||||
android:textColor="#212121" />
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
style="@style/NovelImage.horizon"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:orientation="horizontal">
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/author2"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/title2"
|
||||
style="@style/TextViewNovelTitle.horizon" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="金庸"
|
||||
android:textColor="#212121" />
|
||||
android:layout_marginTop="2dp"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:id="@+id/category2"
|
||||
style="@style/TextViewNovelType" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/author2"
|
||||
style="@style/TextViewNovelAuthor" />
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/category2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:text="武侠小说"
|
||||
android:textColor="@color/colorAccent" />
|
||||
android:id="@+id/desc2"
|
||||
style="@style/TextViewNovelDesc"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/desc2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:gravity="center"
|
||||
android:text="武侠小说,武侠小说,著名的金庸作品 "
|
||||
android:textColor="@color/common_google_signin_btn_text_light"
|
||||
android:textSize="11sp" />
|
||||
|
||||
</LinearLayout>
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll3"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -173,74 +156,65 @@
|
|||
android:background="@drawable/item_selector"
|
||||
android:clickable="false"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView3"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_margin="10dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="left"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="left"
|
||||
android:text="射雕英雄传"
|
||||
android:textColor="#212121" />
|
||||
<ImageView
|
||||
android:id="@+id/imageView3"
|
||||
style="@style/NovelImage.horizon"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:orientation="horizontal">
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/author3"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/title3"
|
||||
style="@style/TextViewNovelTitle.horizon" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="金庸"
|
||||
android:textColor="#212121" />
|
||||
android:layout_marginTop="2dp"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:id="@+id/category3"
|
||||
style="@style/TextViewNovelType" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/author3"
|
||||
style="@style/TextViewNovelAuthor" />
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/category3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:text="武侠小说"
|
||||
android:textColor="@color/colorAccent" />
|
||||
android:id="@+id/desc3"
|
||||
style="@style/TextViewNovelDesc"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/desc3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:gravity="center"
|
||||
android:text="武侠小说,武侠小说,著名的金庸作品 "
|
||||
android:textColor="@color/common_google_signin_btn_text_light"
|
||||
android:textSize="11sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
<LinearLayout style="@style/llGraySplit" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@drawable/item_selector">
|
||||
android:background="@drawable/item_selector"
|
||||
android:visibility="gone"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:id="@+id/tvCateName"
|
||||
style="@style/TextViewCateTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="玄幻奇幻"/>
|
||||
|
|
|
@ -6,13 +6,11 @@
|
|||
android:gravity="center"
|
||||
android:background="@drawable/item_selector"
|
||||
android:clickable="true"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1">
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
style="@style/NovelImage"
|
||||
android:layout_weight="0"
|
||||
android:gravity="left|center_vertical"
|
||||
style="@style/NovelImage.horizon"
|
||||
android:src="@drawable/googleg_standard_color_18" />
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
|
@ -23,13 +21,13 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
style="@style/TextViewNovelTitle"
|
||||
android:layout_width="wrap_content"
|
||||
style="@style/TextViewNovelTitle.horizon"
|
||||
|
||||
android:text="射雕英雄传"
|
||||
/>
|
||||
<LinearLayout
|
||||
android:layout_marginTop="2dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginLeft="0dp"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -50,14 +48,9 @@
|
|||
</LinearLayout>
|
||||
<TextView
|
||||
android:id="@+id/desc"
|
||||
android:layout_margin="5dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:textSize="11sp"
|
||||
android:maxLines="2"
|
||||
style="@style/TextViewNovelDesc"
|
||||
android:text=" "
|
||||
android:textColor="@color/common_google_signin_btn_text_light" />
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||
<dimen name="fab_margin">16dp</dimen>
|
||||
<dimen name="app_bar_height">256dp</dimen>
|
||||
|
||||
<dimen name="app_bar_height">200dp</dimen>
|
||||
<dimen name="toolbar_action_menu_text" > 15sp</dimen>
|
||||
<!-- 状态栏电池厚度 -->
|
||||
<dimen name="reading_board_battery_border_width">1dp</dimen>
|
||||
<!-- 书本宽边距 -->
|
||||
|
@ -38,9 +38,11 @@
|
|||
<dimen name="appbar_padding_top">8dp</dimen>
|
||||
<dimen name="toolbarPadding">22dp</dimen>
|
||||
<!-- 屏幕右侧空出 -->
|
||||
<dimen name="marginRight">5dp</dimen>
|
||||
<dimen name="marginRight">10dp</dimen>
|
||||
<!-- 屏幕左侧空出 -->
|
||||
<dimen name="marginLeft">5dp</dimen>
|
||||
<dimen name="marginLeft">10dp</dimen>
|
||||
<!-- 屏幕底部侧空出 -->
|
||||
<dimen name="marginBottom">5dp</dimen>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -77,15 +77,30 @@
|
|||
</style>
|
||||
|
||||
<style name="buttonRightMore" parent="@android:style/Widget.Button">
|
||||
<item name="android:layout_width">40dp</item>
|
||||
<item name="android:layout_width">30dp</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_gravity">center</item>
|
||||
<item name="android:layout_gravity">center_vertical</item>
|
||||
<item name="android:layout_weight">0</item>
|
||||
<item name="android:gravity">right</item>
|
||||
<item name="android:textColor">@color/grey</item>
|
||||
<item name="android:textSize">12sp</item>
|
||||
<item name="android:layout_marginRight">10dp</item>
|
||||
<item name="android:background">@drawable/item_selector</item>
|
||||
<item name="android:text">更多</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="tvRightMore" >
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_gravity">center_vertical</item>
|
||||
<item name="android:layout_weight">0</item>
|
||||
<item name="android:gravity">right</item>
|
||||
<item name="android:textColor">@color/grey</item>
|
||||
<item name="android:textSize">12sp</item>
|
||||
<item name="android:layout_marginRight">10dp</item>
|
||||
|
||||
</style>
|
||||
<style name="buttonCates" parent="@android:style/Widget.Button">
|
||||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
|
@ -102,7 +117,7 @@
|
|||
<style name="llGraySplit">
|
||||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_height">5dp</item>
|
||||
<item name="android:background">@color/ghostwhite</item>
|
||||
<item name="android:background">@color/whitesmoke</item>
|
||||
|
||||
</style>
|
||||
|
||||
|
@ -123,7 +138,7 @@
|
|||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
|
||||
<item name="android:textColor">@color/lightgray</item>
|
||||
<item name="android:textColor">@color/common_google_signin_btn_text_light</item>
|
||||
<item name="android:textSize">15sp</item>
|
||||
</style>
|
||||
|
||||
|
@ -137,10 +152,13 @@
|
|||
<item name="android:layout_width">80dp</item>
|
||||
<item name="android:layout_height">100dp</item>
|
||||
<item name="android:layout_weight">1</item>
|
||||
<item name="android:gravity">center</item>
|
||||
<item name="android:layout_gravity">center</item>
|
||||
<item name="android:gravity">center_horizontal</item>
|
||||
<item name="android:scaleType">fitStart</item>
|
||||
|
||||
|
||||
</style>
|
||||
<style name="NovelImage.horizon">
|
||||
<item name="android:layout_weight">0</item>
|
||||
<!--item name="android:gravity">left|center_vertical</item -->
|
||||
</style>
|
||||
<style name="llGallary">
|
||||
<item name="android:orientation">vertical</item>
|
||||
|
@ -187,6 +205,9 @@
|
|||
<item name="android:layout_height">match_parent</item>
|
||||
<item name="android:layout_marginRight">@dimen/marginRight</item>
|
||||
<item name="android:layout_marginLeft">@dimen/marginLeft</item>
|
||||
<item name="android:layout_marginBottom">@dimen/marginLeft</item>
|
||||
|
||||
|
||||
</style>
|
||||
<!-- activity barlayout -->
|
||||
<style name="barLayout">
|
||||
|
@ -263,10 +284,13 @@
|
|||
</style>
|
||||
|
||||
<style name="TextViewNovelTitle">
|
||||
<item name="android:layout_marginLeft">0dp</item>
|
||||
<item name="android:textColor">#212121</item>
|
||||
<item name="android:layout_height">25dp</item>
|
||||
<item name="android:layout_gravity">left</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:lines">1</item>
|
||||
<item name="android:ellipsize">end</item>
|
||||
|
||||
</style>
|
||||
|
||||
|
@ -280,12 +304,86 @@
|
|||
</style>
|
||||
|
||||
<style name="TextViewNovelType">
|
||||
<item name="android:layout_marginLeft">5dp</item>
|
||||
<item name="android:layout_marginLeft">10dp</item>
|
||||
<item name="android:textColor">@color/colorAccent</item>
|
||||
<item name="android:textSize">12sp</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:lines">1</item>
|
||||
</style>
|
||||
<style name="TextViewNovelDesc">
|
||||
<item name="android:layout_margin">10dp</item>
|
||||
<item name="android:textColor">@color/common_google_signin_btn_text_light</item>
|
||||
<item name="android:textSize">12sp</item>
|
||||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:lines">2</item>
|
||||
<item name="android:gravity">center</item>
|
||||
<item name="android:ellipsize">end</item>
|
||||
</style>
|
||||
<style name="TextViewNovelDesc.head">
|
||||
<item name="android:layout_margin">10dp</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
</style>
|
||||
<!-- item name="android:background">@color/colorAccent</item -->
|
||||
<style name="NovelBlockHead">
|
||||
|
||||
<item name="android:paddingBottom">2dp</item>
|
||||
<item name="android:paddingTop">2dp</item>
|
||||
<item name="android:gravity">center_vertical</item>
|
||||
<item name="android:textSize">5sp</item>
|
||||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_height">30dp</item>
|
||||
<item name="android:orientation">horizontal</item>
|
||||
|
||||
</style>
|
||||
|
||||
<style name="NovelBlockImg">
|
||||
<item name="android:layout_gravity">left|center_vertical</item>
|
||||
<item name="android:layout_width">10dp</item>
|
||||
<item name="android:layout_height">10dp</item>
|
||||
|
||||
</style>
|
||||
|
||||
<style name="NovelBlockTitle">
|
||||
<item name="android:layout_marginLeft">4dp</item>
|
||||
<item name="android:layout_gravity">left|center_vertical</item>
|
||||
<item name="android:textColor">#212121</item>
|
||||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_height">20dp</item>
|
||||
<item name="android:layout_weight">1</item>
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
<style name="llOutside.vertical">
|
||||
|
||||
<item name="android:orientation">vertical </item>
|
||||
</style>
|
||||
|
||||
<style name="TextViewNovelTitle.horizon">
|
||||
<item name="android:layout_marginLeft">10dp</item>
|
||||
</style>
|
||||
|
||||
<style name="TextViewCateTitle">
|
||||
<item name="android:textColor">#212121</item>
|
||||
<item name="android:lines">1</item>
|
||||
<item name="android:ellipsize">end</item>
|
||||
</style>
|
||||
|
||||
<style name="TextViewNovelTitle.horizon.bold">
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:textStyle">bold</item>
|
||||
<item name="android:layout_height">20dp</item>
|
||||
</style>
|
||||
|
||||
<style name="ToolbarTheme" parent="AppTheme.AppBarOverlay">
|
||||
<item name="android:textSize">@dimen/toolbar_action_menu_text</item> <!--字体大小-->
|
||||
</style>
|
||||
|
||||
<style name="TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
|
||||
<item name="android:textSize">16sp</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -125,22 +125,24 @@
|
|||
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:design:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide:4.6.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: jp.wasabeef:glide-transformations:2.0.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:annotations:4.9.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: __local_aars__:E.\reading\android\asProjects\zhuike\libs\juniversalchardet-1.0.3.jar:unspecified@jar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.xutils:xutils:3.5.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:extensions:1.1.1@aar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner:1.0.2@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:disklrucache:4.9.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.packetzoom:pz-android-sdk:3.2.43@aar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder:4.9.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.17.2@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:adapter-rxjava2:2.5.0@jar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar" level="project" />
|
||||
|
@ -157,7 +159,6 @@
|
|||
<orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:monitor:1.0.2@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:disklrucache:4.6.1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: __local_aars__:D.\android\sdk\build-tools\28.0.3\renderscript\lib\renderscript-v8.jar:unspecified@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: io.alterac.blurkit:blurkit:1.1.1@aar" level="project" />
|
||||
|
@ -184,14 +185,15 @@
|
|||
<orderEntry type="library" name="Gradle: com.packetzoom:pz-okhttp3-interceptor:3.2.43@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxjava:2.2.7@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.timqi.collapsibletextview:library:1.1.2@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:converter-gson:2.5.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:logging-interceptor:3.14.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:annotations:4.6.1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout:1.1.3@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:print:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.jakewharton:butterknife-runtime:9.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide:4.9.0@aar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0@aar" level="project" />
|
||||
|
@ -205,7 +207,6 @@
|
|||
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder:4.6.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:customview:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" />
|
||||
|
|
Loading…
Reference in New Issue