package ren.solid.ganhuoio.module.home.activity; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.support.design.widget.CollapsingToolbarLayout; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.Fragment; import android.support.v7.widget.Toolbar; import android.text.TextPaint; import android.view.View; import android.widget.ImageView; import java.lang.reflect.Field; import ren.solid.ganhuoio.R; import ren.solid.ganhuoio.module.home.fragment.RecentlyListFragment; import ren.solid.library.activity.ViewPicActivity; import ren.solid.library.activity.base.BaseActivity; import ren.solid.library.imageloader.ImageLoader; /** * Created by _SOLID * GitHub:https://github.com/burgessjp * Date:2017/3/12 * Time:17:30 * Desc: */ public class DailyActivity extends BaseActivity { public static void start(Context context, String title, String date, String imageUrl) { Intent intent = new Intent(context, DailyActivity.class); intent.putExtra("title", title); intent.putExtra("date", date); intent.putExtra("imageUrl", imageUrl); context.startActivity(intent); } public static void start(Activity activity, View v, String title, String date, String imageUrl) { ActivityOptionsCompat compat = ActivityOptionsCompat.makeSceneTransitionAnimation( activity, v, activity.getResources().getString(R.string.image_transition)); Intent intent = new Intent(activity, DailyActivity.class); intent.putExtra("title", title); intent.putExtra("date", date); intent.putExtra("imageUrl", imageUrl); ActivityCompat.startActivity(activity, intent, compat.toBundle()); } protected String getToolbarTitle() { String title = getIntent().getExtras().getString("title"); return title.replace("今日力推:", ""); } protected String getImageUrl() { return getIntent().getExtras().getString("imageUrl"); } protected Fragment getFragment() { String date = getIntent().getExtras().getString("date"); String[] dates = null; if (date.contains("-")) { dates = getIntent().getExtras().getString("date").split("-"); } else if (date.contains("/")) { dates = getIntent().getExtras().getString("date").split("/"); } RecentlyListFragment fragment = null; if (dates != null && dates.length == 3) { fragment = RecentlyListFragment.newInstance( Integer.parseInt(dates[0]), Integer.parseInt(dates[1]), Integer.parseInt(dates[2])); fragment.setUserVisibleHint(true); } return fragment; } @Override protected int setLayoutResourceID() { return R.layout.activity_daily; } @Override protected void setUpView() { setUpToolbar(); ImageView iv_image = $(R.id.iv_image); ImageLoader.displayImage(iv_image, getImageUrl()); getSupportFragmentManager().beginTransaction() .replace(R.id.fl_content, getFragment()) .commit(); iv_image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ViewPicActivity.start(DailyActivity.this, v, getImageUrl()); } }); } private void setUpToolbar() { CollapsingToolbarLayout collapsing_toolbar = $(R.id.collapsing_toolbar_layout); Toolbar toolbar = $(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onBackPressed(); } }); if (getSupportActionBar() != null) { getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } collapsing_toolbar.setTitle(getToolbarTitle()); boldTitleText(collapsing_toolbar); } /** * 加粗CollapsingToolbarLayout的标题文字 * * @param collapsing_toolbar CollapsingToolbarLayout */ private void boldTitleText(CollapsingToolbarLayout collapsing_toolbar) { try { Class<?> clazz = collapsing_toolbar.getClass(); Field field = clazz.getDeclaredField("mCollapsingTextHelper"); field.setAccessible(true); //二次反射 Object textHelper = field.get(collapsing_toolbar); clazz = textHelper.getClass(); field = clazz.getDeclaredField("mTextPaint"); field.setAccessible(true); TextPaint textPaint = (TextPaint) field.get(textHelper); textPaint.setFakeBoldText(true); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } }