I have a custom view
from a git Library
in my activity_main.xml
, which uses an attribute
to display logo image. Layout
of logo is defined in another XML file
, which has an ImageView
with android:src ="@drawable/profile"
. Custom view
also has material tab layout
in it. I want to change the logo image when the tab
is changed. i.e, when I navigate from tab1 to tab2, source image of ImageView
in logo.xml
should be changed. I'm trying to do it with LayoutInflater
in my MainActivity.java onCreate()
.
LinearLayout v;
CircleImageView c;
LayoutInflater li =getLayoutInflater();
v= (LinearLayout)li.inflate(R.layout.header_logo,null);
c = (CircleImageView)v.findViewById(R.id.profile_image);
c.setImageResource(R.drawable.profile2);
It should change the the logo image from profile to profile2 as soon as activity is launched. But the logo image doesn't change.
Here is the MainActivity.java
package graph.prathya.com.nxtstepz3;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.content.res.ResourcesCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import de.hdodenhof.circleimageview.CircleImageView;
import graph.prathya.com.nxtstepz3.fragment.*;
import com.github.florent37.materialviewpager.MaterialViewPager;
import com.oguzdev.circularfloatingactionmenu.library.FloatingActionButton;
import com.oguzdev.circularfloatingactionmenu.library.FloatingActionMenu;
import com.oguzdev.circularfloatingactionmenu.library.SubActionButton;
public class MainActivity extends ActionBarActivity {
private MaterialViewPager mViewPager;
private DrawerLayout mDrawer;
private ActionBarDrawerToggle mDrawerToggle;
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout v;
CircleImageView c;
LayoutInflater li =getLayoutInflater();
v= (LinearLayout)li.inflate(R.layout.header_logo,null);
c = (CircleImageView)v.findViewById(R.id.profile_image);
c.setImageResource(R.drawable.profile2);
setTitle("");
mViewPager = (MaterialViewPager) findViewById(R.id.materialViewPager);
toolbar = mViewPager.getToolbar();
mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ImageView icon = new ImageView(this); // Create an icon
icon.setImageResource(R.mipmap.ic_launcher);
FloatingActionButton actionButton = new FloatingActionButton.Builder(this)
.setContentView(icon)
.build();
if (toolbar != null) {
setSupportActionBar(toolbar);
final ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setHomeButtonEnabled(true);
}
}
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawer, 0, 0);
mDrawer.setDrawerListener(mDrawerToggle);
mViewPager.getViewPager().setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
int oldPosition = -1;
@Override
public Fragment getItem(int position) {
switch (position) {
//case 0:
// return RecyclerViewFragment.newInstance();
//case 1:
// return ScrollFragment.newInstance();
//case 2:
// return WebViewFragment.newInstance();
default:
return RecyclerViewFragment.newInstance();
}
}
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
super.setPrimaryItem(container, position, object);
//only if position changed
if (position == oldPosition)
return;
oldPosition = position;
int color = 0;
String imageUrl = "";
switch (position) {
case 0:
imageUrl = "http://ift.tt/1Qx9Gwe";
color = getResources().getColor(R.color.green_teal);
break;
case 1:
imageUrl = "http://ift.tt/1GyiQ7U";
color = getResources().getColor(R.color.green);
break;
case 2:
imageUrl = "http://ift.tt/1vo8u4o";
color = getResources().getColor(R.color.cyan);
break;
case 3:
imageUrl = "http://ift.tt/Vnobui";
color = getResources().getColor(R.color.red);
break;
}
final int fadeDuration = 400;
mViewPager.setImageUrl(imageUrl,fadeDuration);
mViewPager.setColor(color, fadeDuration);
}
@Override
public int getCount() {
return 4;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Passion";
case 1:
return "Project";
case 2:
return "Events";
case 3:
return "Group Studies";
}
return "";
}
});
mViewPager.getViewPager().setOffscreenPageLimit(mViewPager.getViewPager().getAdapter().getCount());
mViewPager.getPagerTitleStrip().setViewPager(mViewPager.getViewPager());
mViewPager.getViewPager().setCurrentItem(1);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}
}
Here is activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://ift.tt/nIICcg"
xmlns:app="http://ift.tt/GEGVYd"
xmlns:tools="http://ift.tt/LrGmb4"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.github.florent37.materialviewpager.MaterialViewPager
android:id="@+id/materialViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:viewpager_logo="@layout/header_logo"
app:viewpager_pagerTitleStrip="@layout/material_view_pager_pagertitlestrip_newstand"
app:viewpager_logoMarginTop="50dp"
app:viewpager_color="#00b5ad"
app:viewpager_headerHeight="200dp"
app:viewpager_headerAlpha="0.6"
app:viewpager_hideLogoWithFade="true"
app:viewpager_hideToolbarAndTitle="false"
app:viewpager_enableToolbarElevation="true"
app:viewpager_parallaxHeaderFactor="1.5"
app:viewpager_headerAdditionalHeight="50dp"
app:viewpager_header="@layout/header_logo_2"
/>
<include layout="@layout/drawer" />
Here is header_logo.xml
where our ImageView
lies.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
xmlns:android="http://ift.tt/nIICcg"
android:gravity="center">
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://ift.tt/GEGVYd"
xmlns:android="http://ift.tt/nIICcg"
android:id="@+id/profile_image"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/profile"
app:border_width="2dp"
app:border_color="#FF000000" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Paul Walker"
android:textSize="25dp"
android:textColor="#000000"
android:textStyle="italic"
android:layout_marginTop="10dp"
/>
Aucun commentaire:
Enregistrer un commentaire