package com.laotan.easyreader.ui.activity.topnews; import android.graphics.Bitmap; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.FloatingActionButton; import android.support.v7.graphics.Palette; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.Priority; import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; import com.laotan.easyreader.R; import com.laotan.easyreader.app.AppConstants; import com.laotan.easyreader.bean.topnews.NewsDetailBean; import com.laotan.easyreader.injector.component.activity.DaggerTopNewsComponent; import com.laotan.easyreader.injector.module.http.TopNewsHttpModule; import com.laotan.easyreader.presenter.NBADetailPresenter; import com.laotan.easyreader.presenter.impl.NBADetailPresenterImpl; import com.laotan.easyreader.ui.activity.base.LoadingBaseActivity; import com.laotan.easyreader.utils.ColorUtils; import com.laotan.easyreader.utils.ShareUtils; import org.sufficientlysecure.htmltextview.HtmlTextView; import butterknife.BindView; /** * Created by quantan.liu on 2017/4/13. */ public class NBAActivity extends LoadingBaseActivity<NBADetailPresenterImpl> implements NBADetailPresenter.View { @BindView(R.id.ht_news_content) HtmlTextView htNewsContent; private String url; private CollapsingToolbarLayout clptoolbar; private FloatingActionButton fabNBA; @Override protected int getLayoutId() { return R.layout.activity_nba_base; } @Override protected void loadData() { String id = getIntent().getStringExtra("id");//获取新闻的id //获取imgUrl url = getIntent().getStringExtra("url"); mPresenter.fetchNBADetail(id); } @Override public int getContentLayoutId() { return R.layout.activity_top_news; } @Override protected void initView() { } @Override protected void initInject() { DaggerTopNewsComponent.builder() .topNewsHttpModule(new TopNewsHttpModule()) .build().injectNBA(this); } @Override public int setFrameLayoutId() { return R.id.fl_base_content; } protected ImageView detailBarImage; protected Toolbar toolbarZhihuDetail; protected TextView detailBarCopyright; @Override protected void initUI() { detailBarImage = (ImageView) findViewById(R.id.detail_bar_image); toolbarZhihuDetail = (Toolbar) findViewById(R.id.toolbar_nba_detail); detailBarCopyright = (TextView) findViewById(R.id.detail_bar_copyright); clptoolbar = (CollapsingToolbarLayout) findViewById(R.id.clp_toolbar); fabNBA = (FloatingActionButton) findViewById(R.id.fab_nba); setToolBar(toolbarZhihuDetail, ""); } @Override public void refreshView(final NewsDetailBean newsDetailBean) { setState(AppConstants.STATE_SUCCESS); if (!TextUtils.isEmpty(newsDetailBean.getBody())) { htNewsContent.setHtmlFromString(newsDetailBean.getBody(), new HtmlTextView.LocalImageGetter()); setToolBar(toolbarZhihuDetail, newsDetailBean.getTitle()); detailBarCopyright.setText(newsDetailBean.getSource()); Glide.with(this).load(url).asBitmap() .priority(Priority.IMMEDIATE).into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { detailBarImage.setImageBitmap(resource); new Palette.Builder(resource).generate(new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { Palette.Swatch swatch = ColorUtils.getMostPopulousSwatch(palette); if (swatch != null) { int color = swatch.getRgb(); clptoolbar.setContentScrimColor(color); clptoolbar.setStatusBarScrimColor(ColorUtils.getStatusBarColor(color)); } } }); } }); } fabNBA.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ShareUtils.shareText(NBAActivity.this,newsDetailBean.getSource(),newsDetailBean.getTitle()); } }); } }