package com.pandaq.pandaeye.modules.zhihu.zhihudetail; import android.os.Bundle; import android.support.design.widget.AppBarLayout; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.FloatingActionButton; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; import com.pandaq.pandaeye.R; import com.pandaq.pandaeye.config.Constants; import com.pandaq.pandaeye.activities.ShareActivity; import com.pandaq.pandaeye.utils.DensityUtil; import com.pandaq.pandaeye.utils.PicassoTarget; import com.pandaq.pandaeye.utils.x5webview.WebUtils; import com.pandaq.pandaeye.widget.FiveThreeImageView; import com.squareup.picasso.Picasso; import com.squareup.picasso.Target; import com.tencent.smtt.sdk.WebView; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by PandaQ on 2016/9/8. * email : 767807368@qq.com * 知乎日报打开详情页面 */ public class ZhihuStoryInfoActivity extends ShareActivity implements ZhiHuDetailContract.View { private static final float SCRIM_ADJUSTMENT = 0.075f; private String shareUrl = ""; @BindView(R.id.toolbar) Toolbar mToolbar; @BindView(R.id.toolbar_layout) CollapsingToolbarLayout mToolbarLayout; @BindView(R.id.app_bar) AppBarLayout mAppBar; @BindView(R.id.fab) FloatingActionButton mFab; @BindView(R.id.story_img) FiveThreeImageView mStoryImg; @BindView(R.id.zhihudaily_webview) WebView mZhihudailyWebview; @BindView(R.id.pb_load_story) ProgressBar mPbLoadStory; @BindView(R.id.toolbar_title) TextView mToolbarTitle; private String story_id = ""; private ZhihuStoryInfoPresenter mPresenter = new ZhihuStoryInfoPresenter(this); int[] mDeviceInfo; int width; int heigh; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_zhihu_story_info); ButterKnife.bind(this); mToolbar.setTitle(""); setSupportActionBar(mToolbar); initView(); initData(); } private void initView() { mDeviceInfo = DensityUtil.getDeviceInfo(this); width = mDeviceInfo[0]; heigh = width * 3 / 5; mFab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!TextUtils.isEmpty(shareUrl)) { ZhihuStoryInfoActivity.this.showShare(shareUrl, mToolbarTitle.getText().toString()); } } }); mToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finishAfterTransition(); } }); } private void initData() { Bundle bundle = getIntent().getExtras(); story_id = String.valueOf(bundle.getInt(Constants.BUNDLE_KEY_ID)); String title = bundle.getString(Constants.BUNDLE_KEY_TITLE); loadZhihuStory(); mToolbarTitle.setText(title); mToolbarTitle.setSelected(true); } @Override public void showProgressBar() { mPbLoadStory.setVisibility(View.VISIBLE); } @Override public void hideProgressBar() { mPbLoadStory.setVisibility(View.GONE); } @Override public void loadZhihuStory() { mPresenter.loadStory(story_id); } @Override public void loadFail(String errmsg) { } @Override public void loadSuccess(ZhihuStoryContent zhihuStory) { shareUrl = zhihuStory.getShare_url(); Target target = new PicassoTarget(this, mStoryImg, mToolbarLayout, mToolbar, mFab); //不设置的话会有时候不加载图片 mStoryImg.setTag(target); String image = zhihuStory.getImage(); if (!TextUtils.isEmpty(image)) { Picasso.with(this) .load(image) .resize(width, heigh) .centerCrop() .into(target); } startPostponedEnterTransition(); String url = zhihuStory.getShare_url(); boolean isEmpty = TextUtils.isEmpty(zhihuStory.getBody()); String mBody = zhihuStory.getBody(); String[] scc = zhihuStory.getCss(); //如果返回的html body为空则直接 load url if (isEmpty) { mZhihudailyWebview.loadUrl(url); } else { String data = WebUtils.buildHtmlWithCss(mBody, scc, false); mZhihudailyWebview.loadDataWithBaseURL(WebUtils.BASE_URL, data, WebUtils.MIME_TYPE, WebUtils.ENCODING, WebUtils.FAIL_URL); } } @Override protected void onPause() { super.onPause(); mPresenter.dispose(); } }