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