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