parent
4679e86098
commit
63662a1b6b
|
@ -63,7 +63,6 @@ dependencies {
|
||||||
// annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
|
// annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
|
||||||
implementation 'com.youth.banner:banner:1.4.10'
|
implementation 'com.youth.banner:banner:1.4.10'
|
||||||
api 'com.github.bumptech.glide:glide:4.6.1'
|
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.google.code.gson:gson:2.8.5'
|
||||||
// implementation 'com.viewpagerindicator:library:2.4.1'
|
// implementation 'com.viewpagerindicator:library:2.4.1'
|
||||||
//implementation 'com.github.auv1107:tablayout-android:-SNAPSHOT'
|
//implementation 'com.github.auv1107:tablayout-android:-SNAPSHOT'
|
||||||
|
@ -78,4 +77,9 @@ dependencies {
|
||||||
implementation 'com.squareup.okhttp3:logging-interceptor:3.14.0'
|
implementation 'com.squareup.okhttp3:logging-interceptor:3.14.0'
|
||||||
implementation 'com.packetzoom:pz-okhttp3-interceptor:3.2.43'
|
implementation 'com.packetzoom:pz-okhttp3-interceptor:3.2.43'
|
||||||
api 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
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 abstract void initData() ;
|
||||||
|
|
||||||
protected BookListAdapter getBookListAdapter(List<Novel> mDatas){
|
protected BookListAdapter getBookListAdapter(List<Novel> mDatas,int itemResourceId){
|
||||||
BookListAdapter mAdapter = new BookListAdapter(this ,mDatas,R.layout.recycle_list_item_horizon,new OnItemClickListener()
|
BookListAdapter mAdapter = new BookListAdapter(this ,mDatas,itemResourceId,new OnItemClickListener()
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(View view, int position)
|
public void onItemClick(View view, int position)
|
||||||
{
|
{
|
||||||
showBook("射雕" +position);
|
// showBook("射雕" +position);
|
||||||
|
showBookDetail(mDatas.get(position));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -105,7 +105,12 @@ public abstract class Activity_base extends AppCompatActivity {
|
||||||
|
|
||||||
return mAdapter;
|
return mAdapter;
|
||||||
}
|
}
|
||||||
|
void showBookDetail(Novel book) {
|
||||||
|
|
||||||
|
Intent intent = new Intent(this, BookActivity.class);
|
||||||
|
intent.putExtra(BookActivity.EXTRA_BOOK,book);
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
|
|
@ -28,6 +28,7 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
||||||
SlidingTabLayout tabLayout;
|
SlidingTabLayout tabLayout;
|
||||||
public static String EXTR_FN="fn";
|
public static String EXTR_FN="fn";
|
||||||
public static String EXTR_TITLE="title";
|
public static String EXTR_TITLE="title";
|
||||||
|
public static String EXTR_BANGDAN ="bangdan";
|
||||||
private ArrayList<Fragment> mFragments;
|
private ArrayList<Fragment> mFragments;
|
||||||
ArrayList<View> mList;
|
ArrayList<View> mList;
|
||||||
String[] mTitle;
|
String[] mTitle;
|
||||||
|
@ -42,8 +43,8 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
||||||
initTabs();
|
initTabs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String bangdan;
|
||||||
|
String fn;
|
||||||
@Override
|
@Override
|
||||||
protected void setTitle() {
|
protected void setTitle() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
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);
|
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 title = getIntent().getStringExtra(EXTR_TITLE);
|
||||||
String fn = getIntent().getStringExtra(EXTR_FN);
|
|
||||||
|
|
||||||
title+="榜";
|
|
||||||
|
//title+="榜";
|
||||||
this.setTitle(title);
|
this.setTitle(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,11 +74,16 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
||||||
void initTabs() {
|
void initTabs() {
|
||||||
|
|
||||||
if(mFragments ==null || mFragments.size() ==0){
|
if(mFragments ==null || mFragments.size() ==0){
|
||||||
mTitle = new String[]{"周榜", "月榜", "总榜"};
|
// mTitle = new String[]{"周榜", "月榜", "总榜"};
|
||||||
mFragments = new ArrayList<>();
|
mFragments = new ArrayList<>();
|
||||||
mFragments.add( Fragment_booklist.newInstance("a",1)); //目的地不清楚
|
mFragments.add( Fragment_booklist.newInstance(fn,bangdan)); //首页更多
|
||||||
mFragments.add(new Fragment_booklist());
|
|
||||||
mFragments.add(new Fragment_booklist());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// mFragments.add(new Fragment_booklist());
|
||||||
|
// mFragments.add(new Fragment_booklist());
|
||||||
|
|
||||||
}
|
}
|
||||||
Log.d(TAG,"set viewPager adapter ");
|
Log.d(TAG,"set viewPager adapter ");
|
||||||
|
@ -89,13 +98,14 @@ public static String TAG ="com.novelbook.android.paihangbang";
|
||||||
return mFragments.size();
|
return mFragments.size();
|
||||||
}
|
}
|
||||||
//ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text
|
//ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text
|
||||||
@Override
|
// @Override
|
||||||
public CharSequence getPageTitle(int position) {
|
// public CharSequence getPageTitle(int position) {
|
||||||
return mTitle[position];
|
// return mTitle[position];
|
||||||
}
|
// }
|
||||||
};
|
};
|
||||||
mViewpager.setAdapter(mAdapter);
|
mViewpager.setAdapter(mAdapter);
|
||||||
tabLayout.setViewPager(mViewpager);
|
//tabLayout.setViewPager(mViewpager);
|
||||||
|
tabLayout.setVisibility(View.GONE);
|
||||||
// tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
|
// tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
|
||||||
mViewpager.setCurrentItem(0);
|
mViewpager.setCurrentItem(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ public class Activity_shudan extends Activity_base {
|
||||||
@Override
|
@Override
|
||||||
protected void initData() {
|
protected void initData() {
|
||||||
mData = getFakeData(5);
|
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.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
|
import android.support.v7.widget.GridLayoutManager;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
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.MyIntentService;
|
||||||
import com.novelbook.android.service.ServiceDownload;
|
import com.novelbook.android.service.ServiceDownload;
|
||||||
import com.novelbook.android.utils.BookUtil;
|
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.GsonUtil;
|
||||||
import com.novelbook.android.utils.ImageUtil;
|
import com.novelbook.android.utils.ImageUtil;
|
||||||
import com.novelbook.android.utils.MyImageLoader;
|
import com.novelbook.android.utils.MyImageLoader;
|
||||||
|
@ -54,6 +60,9 @@ import org.litepal.LitePal;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URL;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -61,6 +70,7 @@ import java.util.List;
|
||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
|
import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||||
import okhttp3.Call;
|
import okhttp3.Call;
|
||||||
import okhttp3.Callback;
|
import okhttp3.Callback;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
|
@ -77,16 +87,21 @@ public class BookActivity extends Activity_base {
|
||||||
private Novel mNovel;
|
private Novel mNovel;
|
||||||
private Chapter mChapter;
|
private Chapter mChapter;
|
||||||
static String TAG = BookActivity.class.getSimpleName();
|
static String TAG = BookActivity.class.getSimpleName();
|
||||||
BookListAdapter mAdapter;
|
BookListAdapter mAdapterAuthor;
|
||||||
// private BookListAdapter mAdapter;
|
// 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<>();
|
private List<Chapter> mChapters = new ArrayList<>();
|
||||||
@BindView(R.id.toolbar)
|
// @BindView(R.id.toolbar)
|
||||||
Toolbar toolbar;
|
// Toolbar toolbar;
|
||||||
@BindView(R.id.rvBooklist)
|
@BindView(R.id.rvBooklist)
|
||||||
RecyclerView rvBooklist;
|
RecyclerView rvBooklistAuthor;
|
||||||
@BindView(R.id.btnShelf)
|
@BindView(R.id.btnShelf)
|
||||||
Button btnShelf;
|
Button btnShelf;
|
||||||
@BindView(R.id.imageView)
|
@BindView(R.id.imageView)
|
||||||
|
@ -100,15 +115,23 @@ public class BookActivity extends Activity_base {
|
||||||
@BindView(R.id.category)
|
@BindView(R.id.category)
|
||||||
TextView txtCategory;
|
TextView txtCategory;
|
||||||
@BindView(R.id.txtDesc2)
|
@BindView(R.id.txtDesc2)
|
||||||
TextView txtDesc2;
|
com.timqi.collapsibletextview.CollapsibleTextView txtDesc2;
|
||||||
@BindView(R.id.txtLatestCate)
|
@BindView(R.id.txtLatestCate)
|
||||||
TextView txtLatestCate;
|
TextView txtLatestCate;
|
||||||
@BindView(R.id.btnCacheBook)
|
@BindView(R.id.btnCacheBook)
|
||||||
Button btnCach;
|
Button btnCach;
|
||||||
|
@BindView(R.id.rvBooklistRelated)
|
||||||
|
RecyclerView rvBooklistRelated;
|
||||||
Intent serviceIntent ;
|
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(){
|
public Intent getSvrIntent(){
|
||||||
if(serviceIntent ==null){
|
if(serviceIntent ==null){
|
||||||
serviceIntent= new Intent(this, ServiceDownload.class);
|
serviceIntent= new Intent(this, ServiceDownload.class);
|
||||||
|
@ -123,12 +146,17 @@ public class BookActivity extends Activity_base {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initViews() {
|
protected void initViews() {
|
||||||
initialBookList();
|
rvBooklistRelated.setVisibility(View.GONE);
|
||||||
|
rvBooklistAuthor.setVisibility(View.GONE);
|
||||||
|
tvTonglei.setVisibility(View.GONE);
|
||||||
|
tvAuthorMore.setText( "");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setupToolbar() {
|
protected void setupToolbar() {
|
||||||
super.setupToolbar();
|
super.setupToolbar();
|
||||||
|
toolbar.setTitleMarginBottom(1);
|
||||||
|
toolbar.setTitleTextAppearance(this,R.style.TitleText);
|
||||||
toolbar.inflateMenu(R.menu.menu_book);//设置右上角的填充菜单
|
toolbar.inflateMenu(R.menu.menu_book);//设置右上角的填充菜单
|
||||||
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
|
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -164,8 +192,7 @@ public class BookActivity extends Activity_base {
|
||||||
setBookInfo();//set title ,data from novel list
|
setBookInfo();//set title ,data from novel list
|
||||||
|
|
||||||
getBookInfo();
|
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.txtCategory.setText(mNovel.getNovelType());
|
||||||
this.txtDesc.setText(mNovel.getDesc ());
|
this.txtDesc.setText(mNovel.getDesc ());
|
||||||
this.txtTitle.setText(mNovel.getName());
|
this.txtTitle.setText(mNovel.getName());
|
||||||
this.txtDesc2.setText(mNovel.getDesc ());
|
this.txtDesc2.setFullString(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);
|
|
||||||
|
|
||||||
|
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() {
|
void setShelfButtonText() {
|
||||||
|
@ -243,14 +324,14 @@ public class BookActivity extends Activity_base {
|
||||||
setBookDetailInfo();
|
setBookDetailInfo();
|
||||||
} else if (msg.what == 2) //准备数据,启动service
|
} else if (msg.what == 2) //准备数据,启动service
|
||||||
{
|
{
|
||||||
hideProgress();
|
|
||||||
|
|
||||||
|
|
||||||
Toast.makeText(BookActivity.this, "已加入下载队列1", Toast.LENGTH_LONG).show();
|
Toast.makeText(BookActivity.this, "已加入下载队列1", Toast.LENGTH_LONG).show();
|
||||||
} else if (msg.what == 3) {
|
} else if (msg.what == 3) {
|
||||||
Toast.makeText(BookActivity.this, "获取目录信息失败,下载失败", Toast.LENGTH_LONG).show();
|
Toast.makeText(BookActivity.this, "获取目录信息失败,下载失败", Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
|
hideProgress();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -460,6 +541,50 @@ public class BookActivity extends Activity_base {
|
||||||
}
|
}
|
||||||
}, BookActivity.this));
|
}, 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){
|
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
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
|
|
|
@ -31,6 +31,10 @@ import android.widget.Toast;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.google.gson.Gson;
|
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_base;
|
||||||
import com.novelbook.android.Activity_paihangbang;
|
import com.novelbook.android.Activity_paihangbang;
|
||||||
import com.novelbook.android.Activity_shudan;
|
import com.novelbook.android.Activity_shudan;
|
||||||
|
@ -55,6 +59,7 @@ import org.w3c.dom.Text;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import butterknife.BindView;
|
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) {
|
} else if (msg.what == 3) {
|
||||||
|
|
||||||
Toast.makeText(getActivity(), " ", Toast.LENGTH_LONG).show();
|
Toast.makeText(getActivity(), " ", Toast.LENGTH_LONG).show();
|
||||||
|
@ -296,12 +301,30 @@ public abstract class BasicFragment extends Fragment {
|
||||||
|
|
||||||
NovelBlock nb = (NovelBlock) obj;
|
NovelBlock nb = (NovelBlock) obj;
|
||||||
Intent intent = new Intent(activity, Activity_paihangbang.class);
|
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_FN,nb.getFn() );
|
||||||
intent.putExtra(Activity_paihangbang.EXTR_TITLE,nb.getTitle() );
|
intent.putExtra(Activity_paihangbang.EXTR_TITLE,title );
|
||||||
startActivity(intent);
|
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){
|
protected void loadImageView(String url, ImageView imageView){
|
||||||
ImageUtil.loadImage( getActivity(), url , imageView);
|
ImageUtil.loadImage( getActivity(), url , imageView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,13 +3,24 @@ package com.novelbook.android.Fragments;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.novelbook.android.R;
|
import com.novelbook.android.R;
|
||||||
|
import com.novelbook.android.bean.NovelBlock;
|
||||||
import com.novelbook.android.db.Novel;
|
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.BandanAdapter;
|
||||||
|
import com.novelbook.android.utils.Constants;
|
||||||
|
import com.novelbook.android.utils.GsonUtil;
|
||||||
import com.novelbook.android.utils.OnItemClickListener;
|
import com.novelbook.android.utils.OnItemClickListener;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import butterknife.BindView;
|
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_PARAM1 = "param1";
|
||||||
private static final String ARG_PARAM2 = "param2";
|
private static final String ARG_PARAM2 = "param2";
|
||||||
private BandanAdapter mAdapter;
|
private BandanAdapter mAdapter;
|
||||||
private List<Novel> mData;
|
private List<NovelBlock> mBlocks;
|
||||||
|
// private List<Novel> mData;
|
||||||
@BindView(R.id.rvBangdan)
|
@BindView(R.id.rvBangdan)
|
||||||
RecyclerView rvBandan;
|
RecyclerView rvBandan;
|
||||||
|
|
||||||
|
@ -35,6 +47,39 @@ public class Fragment_bangdan extends BasicFragment {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void fillData() {
|
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(){
|
protected void processArguments(){
|
||||||
|
@ -51,38 +96,38 @@ public class Fragment_bangdan extends BasicFragment {
|
||||||
@Override
|
@Override
|
||||||
public void initData() {
|
public void initData() {
|
||||||
|
|
||||||
mData = initData(mData,'F');
|
showProgressDialog(true, "正在加载");
|
||||||
mAdapter = new BandanAdapter(activity ,mData,R.layout.recycle_list_item_bangdan,new OnItemClickListener()
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
|
BookSubscribe.getSiteRanks( Constants.SEX,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(View view, int position)
|
public void onSuccess(String result) {
|
||||||
{
|
|
||||||
showPaihangbang("分类名称" +position);
|
// 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
|
@Override
|
||||||
public void onItemLongClick(View view, int position)
|
public void onFault(String errorMsg) {
|
||||||
{
|
//失败
|
||||||
// initDialog(position);
|
Log.d(TAG, "error on : " + errorMsg);
|
||||||
// mAdapter.removeData(position);
|
handler.sendEmptyMessage(1);
|
||||||
}
|
}
|
||||||
@Override
|
}, getActivity()));
|
||||||
public void onLinearOutClick(View view, int position,int lineId) {
|
|
||||||
// Toast.makeText(activity, "book "+ bookId + " clicked", Toast.LENGTH_SHORT).show();
|
|
||||||
|
|
||||||
|
|
||||||
showBookDetail(mData.get(position));
|
|
||||||
// openBook();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void initViews(){
|
public void initViews(){
|
||||||
initialBookList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void initialBookList() {
|
void initialBookList() {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.novelbook.android.Fragments;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Toast;
|
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.OnSuccessAndFaultListener;
|
||||||
import com.novelbook.android.netutils.OnSuccessAndFaultSub;
|
import com.novelbook.android.netutils.OnSuccessAndFaultSub;
|
||||||
import com.novelbook.android.utils.Constants;
|
import com.novelbook.android.utils.Constants;
|
||||||
|
import com.novelbook.android.utils.GsonUtil;
|
||||||
import com.novelbook.android.utils.OnItemClickListener;
|
import com.novelbook.android.utils.OnItemClickListener;
|
||||||
import com.novelbook.android.adapter.BookListAdapter;
|
import com.novelbook.android.adapter.BookListAdapter;
|
||||||
|
|
||||||
|
@ -34,11 +36,18 @@ import butterknife.BindView;
|
||||||
public class Fragment_booklist extends BasicFragment {
|
public class Fragment_booklist extends BasicFragment {
|
||||||
private static final String EXTR_CATE ="cate" ;
|
private static final String EXTR_CATE ="cate" ;
|
||||||
private static final String EXTR_PROGRESS ="progress" ;
|
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 BookListAdapter mAdapter;
|
// private BookListAdapter mAdapter;
|
||||||
private List<Novel> mData;;
|
private List<Novel> mData;;
|
||||||
private String cate;
|
private String cate;
|
||||||
private int progress;
|
private int progress;
|
||||||
|
|
||||||
|
private String fn;
|
||||||
|
private String bangdan;
|
||||||
|
|
||||||
private int pageNo=1;
|
private int pageNo=1;
|
||||||
private int totalCount;
|
private int totalCount;
|
||||||
private int pageCount;
|
private int pageCount;
|
||||||
|
@ -48,7 +57,14 @@ public class Fragment_booklist extends BasicFragment {
|
||||||
public Fragment_booklist() {
|
public Fragment_booklist() {
|
||||||
// Required empty public constructor
|
// 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) {
|
public static Fragment_booklist newInstance(String noveType,int progress) {
|
||||||
Fragment_booklist fragment = new Fragment_booklist();
|
Fragment_booklist fragment = new Fragment_booklist();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
|
@ -60,48 +76,27 @@ public class Fragment_booklist extends BasicFragment {
|
||||||
protected void processArguments(){
|
protected void processArguments(){
|
||||||
if (getArguments() != null) {
|
if (getArguments() != null) {
|
||||||
Bundle bundle = getArguments() ;
|
Bundle bundle = getArguments() ;
|
||||||
|
bangdan =bundle.getString(EXTR_BANGDAN);
|
||||||
|
fn= bundle.getString(EXTR_FN);
|
||||||
|
|
||||||
|
if(!TextUtils.isEmpty((fn))){
|
||||||
|
return;
|
||||||
|
}
|
||||||
cate = bundle.getString(EXTR_CATE);
|
cate = bundle.getString(EXTR_CATE);
|
||||||
progress = bundle.getInt(EXTR_PROGRESS);
|
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
|
@Override
|
||||||
protected void fillData() {
|
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
|
@Override
|
||||||
public void onItemClick(View view, int position) {
|
public void onItemClick(View view, int position) {
|
||||||
|
@ -133,15 +128,76 @@ public class Fragment_booklist extends BasicFragment {
|
||||||
public void initData() {
|
public void initData() {
|
||||||
|
|
||||||
showProgressDialog(true, "正在加载");
|
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() {
|
BookSubscribe.getCateNovelList(cate,pageNo,Constants.SEX,progress,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String result) {
|
public void onSuccess(String result) {
|
||||||
|
|
||||||
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
||||||
try {
|
try {
|
||||||
JSONObject jsonObject = new JSONObject(result);
|
|
||||||
String resultstr = jsonObject.getString("ns");
|
mData = GsonUtil. parserJsonArray(result,Constants.BLOCK_TITLE_NOVELS);
|
||||||
mData = parserJsonArray(resultstr);
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,9 @@ import com.novelbook.android.db.SiteRule;
|
||||||
import com.novelbook.android.netsubscribe.BookSubscribe;
|
import com.novelbook.android.netsubscribe.BookSubscribe;
|
||||||
import com.novelbook.android.netutils.OnSuccessAndFaultListener;
|
import com.novelbook.android.netutils.OnSuccessAndFaultListener;
|
||||||
import com.novelbook.android.netutils.OnSuccessAndFaultSub;
|
import com.novelbook.android.netutils.OnSuccessAndFaultSub;
|
||||||
|
import com.novelbook.android.utils.Constants;
|
||||||
import com.novelbook.android.utils.CyclePageIndicator;
|
import com.novelbook.android.utils.CyclePageIndicator;
|
||||||
|
import com.novelbook.android.utils.GsonUtil;
|
||||||
import com.novelbook.android.utils.ImageUtil;
|
import com.novelbook.android.utils.ImageUtil;
|
||||||
import com.novelbook.android.utils.MyViewPager;
|
import com.novelbook.android.utils.MyViewPager;
|
||||||
import com.novelbook.android.utils.OnItemClickListener;
|
import com.novelbook.android.utils.OnItemClickListener;
|
||||||
|
@ -137,52 +139,20 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener
|
||||||
return R.layout.fragment_jingxuan;
|
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
|
@Override
|
||||||
public void initData() {
|
public void initData() {
|
||||||
|
|
||||||
showProgressDialog(true, "正在加载");
|
showProgressDialog(true, "正在加载");
|
||||||
BookSubscribe.getFirstPage(new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
BookSubscribe.getFirstPage(Constants.SEX,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String result) {
|
public void onSuccess(String result) {
|
||||||
|
|
||||||
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
||||||
try {
|
try {
|
||||||
JSONObject jsonObject = new JSONObject(result);
|
|
||||||
String resultstr = jsonObject.getString("blocks");
|
mBlocks = GsonUtil.parserNovleBlocks(result,"blocks");
|
||||||
mBlocks = parserJsonArray(resultstr);
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -474,9 +444,13 @@ public class Fragment_jingxuan extends BasicFragment implements OnBannerListener
|
||||||
@BindView(R.id.rvFinishG)
|
@BindView(R.id.rvFinishG)
|
||||||
RecyclerView rvFinishG;
|
RecyclerView rvFinishG;
|
||||||
|
|
||||||
|
int getSpanCnt(){
|
||||||
|
return Constants.NOVEL_SPAN_CNT;
|
||||||
|
}
|
||||||
|
|
||||||
void initialBookList() {
|
void initialBookList() {
|
||||||
|
|
||||||
int spanCnt =4;
|
int spanCnt =getSpanCnt();
|
||||||
OnItemClickListener onItemClickListener = new OnItemClickListener() {
|
OnItemClickListener onItemClickListener = new OnItemClickListener() {
|
||||||
|
|
||||||
@Override
|
@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_bookStore;
|
||||||
import com.novelbook.android.Fragments.Fragment_paihang;
|
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.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import android.content.Context;
|
||||||
import com.novelbook.android.utils.PageFactory;
|
import com.novelbook.android.utils.PageFactory;
|
||||||
|
|
||||||
import org.litepal.LitePal;
|
import org.litepal.LitePal;
|
||||||
import org.xutils.x;
|
|
||||||
|
|
||||||
import io.alterac.blurkit.BlurKit;
|
import io.alterac.blurkit.BlurKit;
|
||||||
|
|
||||||
|
@ -19,8 +19,7 @@ public class MyApp extends Application {
|
||||||
Config.createConfig(this);
|
Config.createConfig(this);
|
||||||
PageFactory.createPageFactory(this);
|
PageFactory.createPageFactory(this);
|
||||||
|
|
||||||
x.Ext.init(this);
|
|
||||||
x.Ext.setDebug(false); //输出debug日志,开启会影响性能
|
|
||||||
// BlurKit.init(this);
|
// BlurKit.init(this);
|
||||||
LitePal.initialize(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) {
|
} else if (msg.what == 3) {
|
||||||
|
|
||||||
Toast.makeText(activity_cates.this, " ", Toast.LENGTH_LONG).show();
|
Toast.makeText(activity_cates.this, " ", Toast.LENGTH_LONG).show();
|
||||||
|
@ -95,7 +95,8 @@ public class activity_cates extends Activity_base {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(View view, int position) {
|
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) {
|
public void onFault(String errorMsg) {
|
||||||
//失败
|
//失败
|
||||||
Log.d(TAG, "error on get firstpage: " + errorMsg);
|
Log.d(TAG, "error on get firstpage: " + errorMsg);
|
||||||
handler.sendEmptyMessage(1);
|
handler.sendEmptyMessage(2);
|
||||||
}
|
}
|
||||||
}, this));
|
}, this));
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ public interface HttpApi {
|
||||||
Observable<ResponseBody> getNovelRule(@Path("siteDomain") String siteDomain);
|
Observable<ResponseBody> getNovelRule(@Path("siteDomain") String siteDomain);
|
||||||
|
|
||||||
@GET("page/index")
|
@GET("page/index")
|
||||||
Observable<ResponseBody> getFirstPage();
|
Observable<ResponseBody> getFirstPage(@Query("sex") int Sex);
|
||||||
|
|
||||||
//分类的总榜,显示每个小说分类有多少本书
|
//分类的总榜,显示每个小说分类有多少本书
|
||||||
@GET("page/noveltype")
|
@GET("page/noveltype")
|
||||||
|
@ -63,7 +63,22 @@ public interface HttpApi {
|
||||||
@GET("search/nt/{cate}/{pageno}")
|
@GET("search/nt/{cate}/{pageno}")
|
||||||
Observable<ResponseBody> getCateNovels(@Path("cate") String cate, @Path("pageno") int pageno, @Query("sex") int sex, @Query("progress") int progress);
|
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);
|
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void getFirstPage(DisposableObserver<ResponseBody> subscriber){
|
public static void getFirstPage(int sex,DisposableObserver<ResponseBody> subscriber){
|
||||||
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getFirstPage();
|
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getFirstPage(sex);
|
||||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
||||||
}
|
}
|
||||||
public static void getCates(int sex,DisposableObserver<ResponseBody> 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);
|
Observable<ResponseBody> observable = HttpMethods.getInstance().getHttpApi().getCateNovels(cate,pageno,sex,progress);
|
||||||
HttpMethods.getInstance().toSubscribe(observable, subscriber);
|
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 com.novelbook.android.utils.FileUtils;
|
||||||
|
|
||||||
|
|
||||||
import org.xutils.common.util.FileUtil;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
@ -130,7 +130,10 @@ public class OnSuccessAndFaultSub extends DisposableObserver<ResponseBody>
|
||||||
} else if (code == 401) {
|
} else if (code == 401) {
|
||||||
// ToastManager.showShortToast("请求的地址不存在");
|
// ToastManager.showShortToast("请求的地址不存在");
|
||||||
mOnSuccessAndFaultListener.onFault("权限验证错误");
|
mOnSuccessAndFaultListener.onFault("权限验证错误");
|
||||||
} else {
|
} else if(code == 500) {
|
||||||
|
// ToastManager.showShortToast("请求失败");
|
||||||
|
mOnSuccessAndFaultListener.onFault("服务错误");
|
||||||
|
}else {
|
||||||
// ToastManager.showShortToast("请求失败");
|
// ToastManager.showShortToast("请求失败");
|
||||||
mOnSuccessAndFaultListener.onFault("请求失败");
|
mOnSuccessAndFaultListener.onFault("请求失败");
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,12 @@ import android.support.v7.widget.RecyclerView;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.novelbook.android.R;
|
import com.novelbook.android.R;
|
||||||
|
import com.novelbook.android.bean.NovelBlock;
|
||||||
import com.novelbook.android.db.Novel;
|
import com.novelbook.android.db.Novel;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -23,10 +25,10 @@ import butterknife.ButterKnife;
|
||||||
private final int IMAGE_VIEW = 3;
|
private final int IMAGE_VIEW = 3;
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
private List<Novel> mDatas = new ArrayList<Novel>();
|
private List<NovelBlock> mDatas = new ArrayList<NovelBlock>();
|
||||||
private OnItemClickListener mOnItemClickLitener;
|
private OnItemClickListener mOnItemClickLitener;
|
||||||
private int listItemID;
|
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.context = context;
|
||||||
this.mDatas = mDatas;
|
this.mDatas = mDatas;
|
||||||
this.mOnItemClickLitener = clickLitener;
|
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.mDatas = mDatas;
|
||||||
this.listItemID = listItemID;
|
this.listItemID = listItemID;
|
||||||
}
|
}
|
||||||
|
@ -73,22 +75,56 @@ import butterknife.ButterKnife;
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(MyViewHolder holder, int position)
|
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());
|
Novel novel = nb.getNs().get(0);
|
||||||
holder.tvAuthor.setText(mDatas.get(0).getAuthor());
|
if(novel!=null) {
|
||||||
holder.tvCate.setText(mDatas.get(0).getNovelType());
|
holder.ll1.setVisibility(View.VISIBLE);
|
||||||
holder.tvDesc.setText(mDatas.get(0).getDesc());
|
|
||||||
|
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)
|
if (mOnItemClickLitener != null)
|
||||||
|
@ -120,7 +156,7 @@ import butterknife.ButterKnife;
|
||||||
public void onClick(View v)
|
public void onClick(View v)
|
||||||
{
|
{
|
||||||
int pos = position;
|
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)
|
public void onClick(View v)
|
||||||
{
|
{
|
||||||
int pos = position;
|
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)
|
public void onClick(View v)
|
||||||
{
|
{
|
||||||
int pos = position;
|
int pos = position;
|
||||||
mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,3);
|
mOnItemClickLitener.onLinearOutClick(holder.itemView, pos,2);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -193,7 +229,12 @@ import butterknife.ButterKnife;
|
||||||
LinearLayout ll2;
|
LinearLayout ll2;
|
||||||
@BindView(R.id.ll3)
|
@BindView(R.id.ll3)
|
||||||
LinearLayout 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)
|
public MyViewHolder(View view)
|
||||||
{
|
{
|
||||||
super(view);
|
super(view);
|
||||||
|
|
|
@ -4,13 +4,17 @@ import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
|
import android.view.TextureView;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
|
||||||
|
@ -260,6 +264,15 @@ public class CommonUtil {
|
||||||
return versionName;
|
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;
|
package com.novelbook.android.utils;
|
||||||
|
|
||||||
public class Constants {
|
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;
|
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;
|
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 com.novelbook.android.db.Novel;
|
||||||
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class GsonUtil {
|
public class GsonUtil {
|
||||||
|
|
||||||
|
private static Gson gson = new Gson();
|
||||||
public static Novel getNovel(String json){
|
public static Novel getNovel(String json){
|
||||||
Novel nv = new Novel();
|
Novel nv = new Novel();
|
||||||
try {
|
try {
|
||||||
|
@ -27,4 +38,72 @@ public class GsonUtil {
|
||||||
}
|
}
|
||||||
return nv;
|
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"
|
android:fitsSystemWindows="true"
|
||||||
app:contentScrim="?attr/colorPrimary"
|
app:contentScrim="?attr/colorPrimary"
|
||||||
app:layout_scrollFlags="scroll|exitUntilCollapsed"
|
app:layout_scrollFlags="scroll|exitUntilCollapsed"
|
||||||
|
app:collapsedTitleGravity="center"
|
||||||
|
app:expandedTitleGravity="bottom"
|
||||||
|
app:expandedTitleTextAppearance="@style/TitleText"
|
||||||
app:toolbarId="@+id/toolbar">
|
app:toolbarId="@+id/toolbar">
|
||||||
|
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/login_layout"
|
android:id="@+id/login_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="240dp"
|
android:layout_height="match_parent"
|
||||||
android:paddingBottom="10dp"
|
android:paddingBottom="0dp"
|
||||||
app:layout_collapseMode="pin"
|
app:layout_collapseMode="pin"
|
||||||
app:layout_collapseParallaxMultiplier="0.7">
|
app:layout_collapseParallaxMultiplier="0.7">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/head_img2"
|
android:id="@+id/imageViewHead"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:src="@mipmap/side_bg2"
|
android:scaleType="fitXY"
|
||||||
android:alpha="0.6"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,20 +60,20 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="bottom"
|
android:gravity="bottom"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginLeft="25dp"
|
android:layout_marginLeft="30dp"
|
||||||
android:layout_marginRight="20dp"
|
android:layout_marginRight="20dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/imageView"
|
android:id="@+id/imageView"
|
||||||
android:layout_width="100dp"
|
style="@style/NovelImage"
|
||||||
android:layout_height="120dp"
|
|
||||||
android:layout_margin="10dp"
|
|
||||||
android:layout_weight="0"
|
android:layout_weight="0"
|
||||||
android:gravity="left"
|
android:gravity="left"
|
||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
android:src="@mipmap/side_bg" />
|
android:layout_height="100dp"
|
||||||
|
android:layout_width="80dp"
|
||||||
|
/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -83,36 +85,34 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/title"
|
android:id="@+id/title"
|
||||||
style="@style/TextViewHead.bold"
|
style="@style/TextViewNovelTitle.horizon.bold"
|
||||||
android:text="射雕英雄传"
|
android:text=" "
|
||||||
android:layout_height="30dp"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/desc"
|
android:id="@+id/desc"
|
||||||
style="@style/TextViewHead"
|
style="@style/TextViewNovelDesc.head"
|
||||||
android:maxLines="2"
|
android:text=" "
|
||||||
android:text="xxxxxxxxxxxxxxxxxxxxx"
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="2dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/author"
|
|
||||||
style="@style/TextViewHead"
|
|
||||||
android:text="金庸"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/category"
|
android:id="@+id/category"
|
||||||
style="@style/TextViewHead"
|
style="@style/TextViewNovelType"
|
||||||
android:layout_marginLeft="5dp"
|
android:text="aaa"
|
||||||
android:text="武侠小说"
|
|
||||||
/>
|
/>
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/author"
|
||||||
|
style="@style/TextViewNovelAuthor"
|
||||||
|
android:text="aaa"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
@ -126,8 +126,13 @@
|
||||||
<android.support.v7.widget.Toolbar
|
<android.support.v7.widget.Toolbar
|
||||||
android:id="@+id/toolbar"
|
android:id="@+id/toolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="40dp"
|
||||||
|
android:minHeight="40dp"
|
||||||
app:layout_collapseMode="pin"
|
app:layout_collapseMode="pin"
|
||||||
|
app:contentInsetLeft="0dp"
|
||||||
|
app:contentInsetStart="0dp"
|
||||||
|
|
||||||
|
|
||||||
app:popupTheme="@style/ToolBarTheme.PopupOverlay" >
|
app:popupTheme="@style/ToolBarTheme.PopupOverlay" >
|
||||||
|
|
||||||
<Button android:id="@+id/mTextMessage"
|
<Button android:id="@+id/mTextMessage"
|
||||||
|
|
|
@ -72,12 +72,15 @@
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical"
|
||||||
|
|
||||||
|
>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="5dp"
|
android:layout_width="5dp"
|
||||||
|
@ -94,10 +97,23 @@
|
||||||
android:text="简介" />
|
android:text="简介" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
<com.timqi.collapsibletextview.CollapsibleTextView
|
||||||
<TextView
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:id="@+id/txtDesc2"
|
android:id="@+id/txtDesc2"
|
||||||
style="@style/TextViewDesc"
|
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_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="20dp"
|
android:layout_marginLeft="20dp"
|
||||||
|
@ -108,7 +124,9 @@
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
android:layout_gravity="center">
|
android:layout_gravity="center"
|
||||||
|
android:visibility="gone"
|
||||||
|
>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -130,7 +148,9 @@
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone"
|
||||||
|
>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="5dp"
|
android:layout_width="5dp"
|
||||||
|
@ -151,29 +171,45 @@
|
||||||
android:id="@+id/llCate"
|
android:id="@+id/llCate"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="5dp"
|
android:layout_marginTop="10dp"
|
||||||
android:paddingBottom="5dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="5dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="5dp"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_weight="0"
|
android:layout_weight="0"
|
||||||
|
android:layout_marginRight="5dp"
|
||||||
android:src="@drawable/ic_mood_black_24dp" />
|
android:src="@drawable/ic_mood_black_24dp" />
|
||||||
|
<TextView
|
||||||
|
style="@style/TextViewDesc"
|
||||||
|
android:layout_width="20dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="11sp"
|
||||||
|
android:text="目录" />
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/txtLatestUpdate"
|
||||||
|
style="@style/TextViewDesc"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text=""
|
||||||
|
|
||||||
|
/>
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/txtLatestCate"
|
android:id="@+id/txtLatestCate"
|
||||||
style="@style/TextViewDesc"
|
style="@style/TextViewDesc"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="最近更新:2/20/2019 5:06:39 PM"
|
android:text=""
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -181,13 +217,7 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</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>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
@ -254,11 +284,11 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
style="@style/TextViewTitle"
|
android:id="@+id/tvAuthorMore"
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockTitle"
|
||||||
android:layout_height="wrap_content"
|
android:layout_marginBottom="5dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="作者其他作品" />
|
android:text=" 其他作品" />
|
||||||
|
|
||||||
<android.support.v7.widget.RecyclerView
|
<android.support.v7.widget.RecyclerView
|
||||||
android:id="@+id/rvBooklist"
|
android:id="@+id/rvBooklist"
|
||||||
|
@ -272,8 +302,30 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</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>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,6 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:nestedScrollingEnabled="false"
|
android:nestedScrollingEnabled="false"
|
||||||
|
android:paddingTop="10dp"
|
||||||
/>
|
/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
|
@ -2,9 +2,7 @@
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
style="@style/llOutside.vertical"
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical"
|
|
||||||
tools:context=".Fragments.Fragment_jingxuan">
|
tools:context=".Fragments.Fragment_jingxuan">
|
||||||
|
|
||||||
<android.support.v4.widget.SwipeRefreshLayout
|
<android.support.v4.widget.SwipeRefreshLayout
|
||||||
|
@ -22,10 +20,11 @@
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:paddingBottom="30dp"
|
android:layout_marginBottom="50dp"
|
||||||
android:orientation="vertical">
|
>
|
||||||
|
|
||||||
<com.youth.banner.Banner
|
<com.youth.banner.Banner
|
||||||
android:id="@+id/banner"
|
android:id="@+id/banner"
|
||||||
|
@ -39,34 +38,25 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<!-- 推荐 -->
|
<!-- 推荐 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockHead"
|
||||||
android:layout_height="30dp"
|
>
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_margin="6dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="20dp"
|
style="@style/NovelBlockImg"
|
||||||
android:layout_height="20dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockTitle"
|
||||||
android:layout_height="30dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:layout_marginLeft="2dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="重磅推荐"
|
android:text="重磅推荐"
|
||||||
android:textColor="#212121" />
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/buttonMoreTuijian"
|
android:id="@+id/buttonMoreTuijian"
|
||||||
style="@style/buttonRightMore"
|
style="@style/buttonRightMore"
|
||||||
android:text="更多>"
|
android:text="更多>>"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
@ -107,33 +97,24 @@
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockHead"
|
||||||
android:layout_height="30dp"
|
>
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_margin="6dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/imageBlock1"
|
android:id="@+id/imageBlock1"
|
||||||
android:layout_width="20dp"
|
style="@style/NovelBlockImg"
|
||||||
android:layout_height="20dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvBlock1"
|
android:id="@+id/tvBlock1"
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockTitle"
|
||||||
android:layout_height="30dp"
|
android:text="block"
|
||||||
android:layout_gravity="left"
|
/>
|
||||||
android:layout_marginLeft="2dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="火热新书"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/buttonMore1"
|
android:id="@+id/buttonMore1"
|
||||||
|
|
||||||
style="@style/buttonRightMore"
|
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
|
<ImageView
|
||||||
android:id="@+id/imageBlock2"
|
android:id="@+id/imageBlock2"
|
||||||
android:layout_width="20dp"
|
style="@style/NovelBlockImg"
|
||||||
android:layout_height="20dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvBlock2"
|
android:id="@+id/tvBlock2"
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockTitle"
|
||||||
android:layout_height="30dp"
|
android:text="block"
|
||||||
android:layout_gravity="left"
|
/>
|
||||||
android:layout_marginLeft="2dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="热门连载"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/buttonMore2"
|
android:id="@+id/buttonMore2"
|
||||||
style="@style/buttonRightMore"
|
style="@style/buttonRightMore"
|
||||||
android:text="更多>"
|
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -236,33 +211,25 @@
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockHead"
|
||||||
android:layout_height="30dp"
|
>
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_margin="6dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/imageBlock3"
|
android:id="@+id/imageBlock3"
|
||||||
android:layout_width="20dp"
|
style="@style/NovelBlockImg"
|
||||||
android:layout_height="20dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvBlock3"
|
android:id="@+id/tvBlock3"
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockTitle"
|
||||||
android:layout_height="30dp"
|
android:text="block"
|
||||||
android:layout_gravity="left"
|
/>
|
||||||
android:layout_marginLeft="2dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="完本精选"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/buttonMore3"
|
android:id="@+id/buttonMore3"
|
||||||
style="@style/buttonRightMore"
|
style="@style/buttonRightMore"
|
||||||
android:text="更多>"
|
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -301,34 +268,28 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout style="@style/llGraySplit" />
|
||||||
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
|
<ImageView
|
||||||
android:id="@+id/imageBlock4"
|
android:id="@+id/imageBlock4"
|
||||||
android:layout_width="20dp"
|
style="@style/NovelBlockImg"
|
||||||
android:layout_height="20dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvBlock4"
|
android:id="@+id/tvBlock4"
|
||||||
android:layout_width="match_parent"
|
style="@style/NovelBlockTitle"
|
||||||
android:layout_height="30dp"
|
android:text="block"
|
||||||
android:layout_gravity="left"
|
/>
|
||||||
android:layout_marginLeft="2dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="完本精选"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/buttonMore4"
|
android:id="@+id/buttonMore4"
|
||||||
style="@style/buttonRightMore"
|
style="@style/buttonRightMore"
|
||||||
android:text="更多>"
|
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -356,7 +317,7 @@
|
||||||
<LinearLayout style="@style/llGraySplit" />
|
<LinearLayout style="@style/llGraySplit" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout style="@style/llGraySplit" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<!-- <include layout="@layout/fragment_jingxuan_book_list"></include> -->
|
<!-- <include layout="@layout/fragment_jingxuan_book_list"></include> -->
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,9 @@
|
||||||
android:background="@drawable/item_selector"
|
android:background="@drawable/item_selector"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:padding="0dp">
|
android:layout_marginBottom="5dp"
|
||||||
<FrameLayout
|
android:padding="2dp">
|
||||||
|
<FrameLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
@ -25,40 +26,14 @@
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:text=""/>
|
android:text=""/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/title"
|
android:id="@+id/title"
|
||||||
android:layout_width="wrap_content"
|
style="@style/TextViewNovelTitle"
|
||||||
android:layout_height="30dp"
|
android:layout_width="75dp"
|
||||||
android:gravity="top|center"
|
android:gravity="top|center"
|
||||||
android:text="天龙八部天龙八部天龙八部"
|
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>
|
</LinearLayout>
|
||||||
|
|
|
@ -3,23 +3,27 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<LinearLayout style="@style/llGraySplit"/>
|
|
||||||
|
<LinearLayout style="@style/llGraySplit" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_margin="2dp"
|
android:layout_margin="2dp"
|
||||||
|
android:paddingBottom="5dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvCateName"
|
android:id="@+id/tvCateName"
|
||||||
android:layout_width="wrap_content"
|
style="@style/NovelBlockTitle"
|
||||||
android:layout_height="30dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="完本精选"
|
android:text="完本精选"
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
|
/>
|
||||||
|
<TextView
|
||||||
|
style="@style/tvRightMore"
|
||||||
|
android:text="更多"
|
||||||
|
/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
@ -31,15 +35,16 @@
|
||||||
android:background="@drawable/item_selector"
|
android:background="@drawable/item_selector"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/imageView"
|
android:id="@+id/imageView"
|
||||||
android:layout_width="80dp"
|
style="@style/NovelImage.horizon"
|
||||||
android:layout_height="80dp"
|
|
||||||
android:layout_margin="10dp"
|
|
||||||
android:layout_weight="0"
|
|
||||||
android:gravity="left"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -51,48 +56,37 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/title"
|
android:id="@+id/title"
|
||||||
android:layout_width="wrap_content"
|
style="@style/TextViewNovelTitle.horizon" />
|
||||||
android:layout_height="30dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:text="射雕英雄传"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
|
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/category"
|
||||||
|
style="@style/TextViewNovelType" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/author"
|
android:id="@+id/author"
|
||||||
android:layout_width="wrap_content"
|
style="@style/TextViewNovelAuthor" />
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="金庸"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<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" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/desc"
|
android:id="@+id/desc"
|
||||||
android:layout_width="match_parent"
|
style="@style/TextViewNovelDesc"/>
|
||||||
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>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<LinearLayout style="@style/llGraySplit" />
|
<LinearLayout style="@style/llGraySplit" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll2"
|
android:id="@+id/ll2"
|
||||||
|
@ -102,15 +96,16 @@
|
||||||
android:background="@drawable/item_selector"
|
android:background="@drawable/item_selector"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/imageView2"
|
android:id="@+id/imageView2"
|
||||||
android:layout_width="80dp"
|
style="@style/NovelImage.horizon"
|
||||||
android:layout_height="80dp"
|
|
||||||
android:layout_margin="10dp"
|
|
||||||
android:layout_weight="0"
|
|
||||||
android:gravity="left"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -122,49 +117,37 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/title2"
|
android:id="@+id/title2"
|
||||||
android:layout_width="wrap_content"
|
style="@style/TextViewNovelTitle.horizon" />
|
||||||
android:layout_height="30dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:text="射雕英雄传"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/category2"
|
||||||
|
style="@style/TextViewNovelType" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/author2"
|
android:id="@+id/author2"
|
||||||
android:layout_width="wrap_content"
|
style="@style/TextViewNovelAuthor" />
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="金庸"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<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" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/desc2"
|
android:id="@+id/desc2"
|
||||||
android:layout_width="match_parent"
|
style="@style/TextViewNovelDesc"/>
|
||||||
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>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout style="@style/llGraySplit" />
|
<LinearLayout style="@style/llGraySplit" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll3"
|
android:id="@+id/ll3"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -173,15 +156,15 @@
|
||||||
android:background="@drawable/item_selector"
|
android:background="@drawable/item_selector"
|
||||||
android:clickable="false"
|
android:clickable="false"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/imageView3"
|
android:id="@+id/imageView3"
|
||||||
android:layout_width="80dp"
|
style="@style/NovelImage.horizon"
|
||||||
android:layout_height="80dp"
|
|
||||||
android:layout_margin="10dp"
|
|
||||||
android:layout_weight="0"
|
|
||||||
android:gravity="left"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -193,54 +176,45 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/title3"
|
android:id="@+id/title3"
|
||||||
android:layout_width="wrap_content"
|
style="@style/TextViewNovelTitle.horizon" />
|
||||||
android:layout_height="30dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:text="射雕英雄传"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/category3"
|
||||||
|
style="@style/TextViewNovelType" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/author3"
|
android:id="@+id/author3"
|
||||||
android:layout_width="wrap_content"
|
style="@style/TextViewNovelAuthor" />
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="金庸"
|
|
||||||
android:textColor="#212121" />
|
|
||||||
|
|
||||||
<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" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/desc3"
|
android:id="@+id/desc3"
|
||||||
android:layout_width="match_parent"
|
style="@style/TextViewNovelDesc"/>
|
||||||
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>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout style="@style/llGraySplit" />
|
<LinearLayout style="@style/llGraySplit" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout style="@style/llGraySplit" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:background="@drawable/item_selector">
|
android:background="@drawable/item_selector"
|
||||||
|
android:visibility="gone"
|
||||||
|
>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvCateName"
|
android:id="@+id/tvCateName"
|
||||||
|
style="@style/TextViewCateTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="玄幻奇幻"/>
|
android:text="玄幻奇幻"/>
|
||||||
|
|
|
@ -6,13 +6,11 @@
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:background="@drawable/item_selector"
|
android:background="@drawable/item_selector"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="10dp"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/imageView"
|
android:id="@+id/imageView"
|
||||||
style="@style/NovelImage"
|
style="@style/NovelImage.horizon"
|
||||||
android:layout_weight="0"
|
|
||||||
android:gravity="left|center_vertical"
|
|
||||||
android:src="@drawable/googleg_standard_color_18" />
|
android:src="@drawable/googleg_standard_color_18" />
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
|
@ -23,13 +21,13 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/title"
|
android:id="@+id/title"
|
||||||
style="@style/TextViewNovelTitle"
|
style="@style/TextViewNovelTitle.horizon"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:text="射雕英雄传"
|
android:text="射雕英雄传"
|
||||||
/>
|
/>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:layout_marginLeft="5dp"
|
android:layout_marginLeft="0dp"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -50,14 +48,9 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/desc"
|
android:id="@+id/desc"
|
||||||
android:layout_margin="5dp"
|
style="@style/TextViewNovelDesc"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textSize="11sp"
|
|
||||||
android:maxLines="2"
|
|
||||||
android:text=" "
|
android:text=" "
|
||||||
android:textColor="@color/common_google_signin_btn_text_light" />
|
/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||||
<dimen name="fab_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>
|
<dimen name="reading_board_battery_border_width">1dp</dimen>
|
||||||
<!-- 书本宽边距 -->
|
<!-- 书本宽边距 -->
|
||||||
|
@ -38,9 +38,11 @@
|
||||||
<dimen name="appbar_padding_top">8dp</dimen>
|
<dimen name="appbar_padding_top">8dp</dimen>
|
||||||
<dimen name="toolbarPadding">22dp</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>
|
||||||
|
|
||||||
<style name="buttonRightMore" parent="@android:style/Widget.Button">
|
<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_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:layout_weight">0</item>
|
||||||
<item name="android:gravity">right</item>
|
<item name="android:gravity">right</item>
|
||||||
<item name="android:textColor">@color/grey</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:background">@drawable/item_selector</item>
|
||||||
|
<item name="android:text">更多</item>
|
||||||
</style>
|
</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">
|
<style name="buttonCates" parent="@android:style/Widget.Button">
|
||||||
<item name="android:layout_width">match_parent</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
@ -102,7 +117,7 @@
|
||||||
<style name="llGraySplit">
|
<style name="llGraySplit">
|
||||||
<item name="android:layout_width">match_parent</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
<item name="android:layout_height">5dp</item>
|
<item name="android:layout_height">5dp</item>
|
||||||
<item name="android:background">@color/ghostwhite</item>
|
<item name="android:background">@color/whitesmoke</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -123,7 +138,7 @@
|
||||||
<item name="android:layout_width">match_parent</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
<item name="android:layout_height">wrap_content</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>
|
<item name="android:textSize">15sp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -137,10 +152,13 @@
|
||||||
<item name="android:layout_width">80dp</item>
|
<item name="android:layout_width">80dp</item>
|
||||||
<item name="android:layout_height">100dp</item>
|
<item name="android:layout_height">100dp</item>
|
||||||
<item name="android:layout_weight">1</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>
|
<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>
|
||||||
<style name="llGallary">
|
<style name="llGallary">
|
||||||
<item name="android:orientation">vertical</item>
|
<item name="android:orientation">vertical</item>
|
||||||
|
@ -187,6 +205,9 @@
|
||||||
<item name="android:layout_height">match_parent</item>
|
<item name="android:layout_height">match_parent</item>
|
||||||
<item name="android:layout_marginRight">@dimen/marginRight</item>
|
<item name="android:layout_marginRight">@dimen/marginRight</item>
|
||||||
<item name="android:layout_marginLeft">@dimen/marginLeft</item>
|
<item name="android:layout_marginLeft">@dimen/marginLeft</item>
|
||||||
|
<item name="android:layout_marginBottom">@dimen/marginLeft</item>
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<!-- activity barlayout -->
|
<!-- activity barlayout -->
|
||||||
<style name="barLayout">
|
<style name="barLayout">
|
||||||
|
@ -263,10 +284,13 @@
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="TextViewNovelTitle">
|
<style name="TextViewNovelTitle">
|
||||||
|
<item name="android:layout_marginLeft">0dp</item>
|
||||||
<item name="android:textColor">#212121</item>
|
<item name="android:textColor">#212121</item>
|
||||||
<item name="android:layout_height">25dp</item>
|
<item name="android:layout_height">25dp</item>
|
||||||
<item name="android:layout_gravity">left</item>
|
<item name="android:layout_gravity">left</item>
|
||||||
<item name="android:layout_width">wrap_content</item>
|
<item name="android:layout_width">wrap_content</item>
|
||||||
|
<item name="android:lines">1</item>
|
||||||
|
<item name="android:ellipsize">end</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -280,12 +304,86 @@
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="TextViewNovelType">
|
<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:textColor">@color/colorAccent</item>
|
||||||
<item name="android:textSize">12sp</item>
|
<item name="android:textSize">12sp</item>
|
||||||
<item name="android:layout_width">wrap_content</item>
|
<item name="android:layout_width">wrap_content</item>
|
||||||
<item name="android:layout_height">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>
|
||||||
|
|
||||||
|
<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>
|
</resources>
|
||||||
|
|
|
@ -125,22 +125,24 @@
|
||||||
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
|
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<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.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: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: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: 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: 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" 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" 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: 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: 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" 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" 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: 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" 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" 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.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.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" 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" />
|
<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: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" 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" 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: 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: __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" />
|
<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: 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: 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.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.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.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.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.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.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.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.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" 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: 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" />
|
<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-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" 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: 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: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:customview:28.0.0@aar" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout: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