I have defined three different classes for handling tab icons. Below is the BaseActivity class of BaseActivity .
public class MainScreenPagerAdapter extends FragmentPagerAdapter implements TabBarView.IconTabProvider { private int[] tab_icons = {R.drawable.launcher_inactive, R.drawable.chat_inactive, R.drawable.t3_inactive, R.drawable.launcher, R.drawable.chat_active, R.drawable.t3_active };
Then in TabView.java I defined setIcon as follows
public void setIcon(int resId) { setIcon(getContext().getResources().getDrawable(resId)); }
Since getDrawable deprecated, I think this is the only problem, I do not see tab icons
public class TabView extends LinearLayout { private ImageView mImageView; private TextView mTextView; public TabView(Context context) { this(context, null); } public TabView(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.actionBarTabStyle); } public TabView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedValue outValue = new TypedValue(); context.getTheme().resolveAttribute(android.R.attr.actionBarTabTextStyle, outValue, true); int txtstyle = outValue.data; int pad = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, getResources() .getDisplayMetrics()); mImageView = new ImageView(context); mImageView.setLayoutParams(new LayoutParams(100, LayoutParams.MATCH_PARENT));
then from class TabBarView.java I called setIcon()
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { mSelectedTab = position; mOffset = positionOffset; invalidate(); if (delegatePageListener != null) { delegatePageListener.onPageScrolled(position, positionOffset, positionOffsetPixels); } if (position == 0) { tabView1.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(3)); tabView1.setScaleX(1); tabView1.setScaleY(1); tabView2.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(1)); // tabView2.setScaleX(2); // tabView2.setScaleY(2); tabView3.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(2)); tabView3.setScaleX(1.1f); tabView3.setScaleY(1.1f); } else if (position == 1) { tabView1.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(0)); tabView1.setScaleX(0.7f); tabView1.setScaleY(0.7f); // tabView1.setBackgroundResource(R.drawable.transparent_button_2); tabView2.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(4)); //tabView2.setBackgroundResource(R.drawable.transparent_round_button); //tabView2.setScaleX(2); //tabView2.setScaleY(2); tabView3.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(2)); tabView3.setScaleX(1.1f); tabView3.setScaleY(1.1f); // tabView3.setBackgroundResource(R.drawable.transparent_button_2); } else if (position == 2) { tabView1.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(0)); //tabView1.setBackgroundResource(R.drawable.transparent_button_2); tabView2.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(1)); //tabView2.setBackgroundResource(R.drawable.transparent_button_2); tabView3.setIcon(((IconTabProvider) pager.getAdapter()).getPageIconResId(5)); // tabView3.setBackgroundResource(R.drawable.transparent_round_button); tabView3.setScaleX(1.7f); tabView3.setScaleY(1.7f); /* LayoutParams params = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT ); params.gravity = Gravity.CENTER; params.setMargins(40,0,0,0); tabView1.setLayoutParams(params); tabView2.setLayoutParams(params); tabView3.setLayoutParams(params); // tabView2.setPadding(20,0,20,0); //tabView3.setPadding(20,0,0,0); */ } }
The solution in this question cannot be applied to my code. I appreciate if you can help me with this matter.