package com.laotan.easyreader.ui.activity.douban; import android.graphics.Color; import android.support.design.widget.AppBarLayout; import android.support.v4.widget.NestedScrollView; import android.support.v7.app.ActionBar; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.blankj.utilcode.utils.ConvertUtils; import com.bumptech.glide.Glide; import com.laotan.easyreader.R; import com.laotan.easyreader.bean.douban.HotMovieBean; import com.laotan.easyreader.bean.douban.MovieDetailBean; import com.laotan.easyreader.bean.douban.PersonBean; import com.laotan.easyreader.injector.component.activity.DaggerMovieDetailComponent; import com.laotan.easyreader.injector.module.http.DoubanHttpModule; import com.laotan.easyreader.presenter.DoubanMovieDetailPresenter; import com.laotan.easyreader.presenter.impl.DoubanMovieDetailPresenterImpl; import com.laotan.easyreader.ui.activity.base.LoadingBaseActivity; import com.laotan.easyreader.utils.GlideUtils; import com.laotan.easyreader.utils.StringFormatUtil; import com.laotan.easyreader.view.HorizontalScrollView; import com.laotan.easyreader.webview.WebViewActivity; import java.util.List; import butterknife.BindView; import jp.wasabeef.glide.transformations.BlurTransformation; /** * Created by quantan.liu on 2017/3/28. */ public class MovieTopDetailActivity extends LoadingBaseActivity<DoubanMovieDetailPresenterImpl> implements DoubanMovieDetailPresenter.View { private ImageView ivBaseTitlebarBg; private Toolbar toolbarDoubanDetail; private ImageView ivOnePhoto; private TextView tvOneRatingRate; private TextView tvOneRatingNumber; private TextView tvOneGenres; private TextView tvOneDay; private TextView tvOneCity; private HotMovieBean.SubjectsBean subjectsBean; private String id; @BindView(R.id.nsv_movie_top_detail) NestedScrollView nsvMovieTopDetail; @BindView(R.id.hs_film) HorizontalScrollView hsFilm; @BindView(R.id.tv_movie_top_detail) TextView tvMovieTopDetail; private String mMoreUrl; private String mMovieName; private TextView tvFormerly; @Override protected int getLayoutId() { return R.layout.activity_movie_top_detail; } @Override protected void loadData() { if (!TextUtils.isEmpty(id)) mPresenter.fetchMovieDetail(id); } @Override public int getContentLayoutId() { return R.layout.activity_movie_top; } @Override protected void initView() { } @Override protected void initInject() { DaggerMovieDetailComponent.builder() .doubanHttpModule(new DoubanHttpModule()) .build().injectMovieDetail(this); } @Override public int setFrameLayoutId() { return R.id.fl_douban_detail_content; } @Override protected void initUI() { final AppBarLayout appbarMovieTopChild = (AppBarLayout) findViewById(R.id.appbar_movie_top_child); ivBaseTitlebarBg = (ImageView) findViewById(R.id.img_item_bg); ivOnePhoto = (ImageView) findViewById(R.id.iv_one_photo); tvOneRatingRate = (TextView) findViewById(R.id.tv_one_rating_rate); tvOneRatingNumber = (TextView) findViewById(R.id.tv_one_rating_number); tvOneGenres = (TextView) findViewById(R.id.tv_one_genres); tvOneDay = (TextView) findViewById(R.id.tv_one_day); tvOneCity = (TextView) findViewById(R.id.tv_one_city); tvFormerly = (TextView) findViewById(R.id.tv_formerly); toolbarDoubanDetail = (Toolbar) findViewById(R.id.toolbar_douban_detail); initToolBar(toolbarDoubanDetail, ""); appbarMovieTopChild.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { @Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if (appbarMovieTopChild.getBottom() > toolbarDoubanDetail.getBottom() ) { toolbarDoubanDetail.setBackgroundColor(getResources().getColor(R.color.translucent)); } else { toolbarDoubanDetail.setBackgroundResource(R.color.colorTheme); } } }); subjectsBean = (HotMovieBean.SubjectsBean) getIntent().getSerializableExtra("bean"); if (subjectsBean != null) { toolbarDoubanDetail.setTitle(subjectsBean.getTitle()); toolbarDoubanDetail.setSubtitleTextColor(Color.WHITE); setImgHeaderBg(subjectsBean.getImages().getMedium()); GlideUtils.loadMovieTopImg(ivOnePhoto, subjectsBean.getImages().getLarge()); tvOneRatingRate.setText("评分:" + subjectsBean.getRating().getAverage()); tvOneGenres.setText("类型:" + StringFormatUtil.formatGenres(subjectsBean.getGenres())); tvOneDay.setText("上映日期:" + subjectsBean.getYear()); //电影详情的id id = subjectsBean.getId(); } } private void initToolBar(Toolbar toolbarDoubanDetail, String title) { setSupportActionBar(toolbarDoubanDetail); toolbarDoubanDetail.setTitle(title); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { //去除默认Title显示 actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R.mipmap.icon_back); } toolbarDoubanDetail.setTitleTextColor(Color.WHITE); toolbarDoubanDetail.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onBackPressed(); } }); toolbarDoubanDetail.setTitleTextAppearance(this, R.style.ToolBar_Title); toolbarDoubanDetail.setSubtitleTextAppearance(this, R.style.Toolbar_SubTitle); toolbarDoubanDetail.inflateMenu(R.menu.base_header_menu); toolbarDoubanDetail.setOverflowIcon(getDrawable(R.mipmap.actionbar_more)); toolbarDoubanDetail.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.actionbar_more:// 更多信息 setTitleClickMore(); break; } return true; } }); } private void setTitleClickMore() { WebViewActivity.loadUrl(MovieTopDetailActivity.this, mMoreUrl, mMovieName); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.base_header_menu, menu); return true; } @Override public void refreshView(MovieDetailBean data) { mMoreUrl = data.getAlt(); mMovieName = data.getTitle(); tvFormerly.setText("原名:" + data.getOriginal_title()); tvOneRatingNumber.setText(data.getRatings_count() + "人评分"); tvOneCity.setText("制作国家/地区:" + data.getCountries() + ""); List<PersonBean> castsList = data.getCasts(); for (final PersonBean personBean : castsList) { ImageView imageView = new ImageView(this); imageView.setLayoutParams(new ViewGroup.LayoutParams(ConvertUtils.dp2px(120), ConvertUtils.dp2px(200))); imageView.setScaleType(ImageView.ScaleType.FIT_XY); GlideUtils.loadMovieTopImg(imageView,personBean.getAvatars().getLarge()); hsFilm.addView(imageView); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { WebViewActivity.loadUrl(MovieTopDetailActivity.this,personBean.getAlt(),"加载中。。。"); } }); } tvMovieTopDetail.setText(data.getSummary()); } /** * 加载titlebar背景 */ private void setImgHeaderBg(String imgUrl) { if (!TextUtils.isEmpty(imgUrl)) { // 高斯模糊背景 参数:12,5 Glide.with(this).load(imgUrl) .error(R.mipmap.stackblur_default) .bitmapTransform(new BlurTransformation(this, 12, 5)).into(ivBaseTitlebarBg); } } }