热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

android中viewpager+fragment仿微信底部TAG完美渐变

这篇文章主要介绍了android中viewpager+fragment仿微信底部TAG完美渐变,需要的朋友可以参考下

viewpager+fragment仿微信底部TAG完美渐变,在图片渐变的同时字的颜色也在变,注意,是渐变哦!

效果图:

activity_main.xml


 
 
 
  
  
 
 

MainActivity.java

package com.Sing.weixin;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewConfiguration;
@SuppressLint("NewApi")
public class MainActivity extends FragmentActivity implements
  OnPageChangeListener, OnClickListener {
 private ViewPager mViewPager;
 // 选项卡一Fragment
 private FrgReturnVisit returnVisit;
 // 选项卡一Fragment
 private FrgMicroVisit microVisit;
 private List mTabIndicator = new ArrayList();
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  setOverflowShowingAlways();
  mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
  mViewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
  initTabIndicator();
  mViewPager.setOnPageChangeListener(this);
 }
 private void initTabIndicator() {
  ChangeColorIconWithTextView One= (ChangeColorIconWithTextView) findViewById(R.id.id_indicator_one);
  ChangeColorIconWithTextView two = (ChangeColorIconWithTextView) findViewById(R.id.id_indicator_two);
  mTabIndicator.add(one);
  mTabIndicator.add(two);
  one.setOnClickListener(this);
  two.setOnClickListener(this);
  one.setIconAlpha(1.0f);
 }
 @Override
 public void onPageSelected(int arg0) {
 }
 @Override
 public void onPageScrolled(int position, float positionOffset,
   int positionOffsetPixels) {
  if (positionOffset > 0) {
   ChangeColorIconWithTextView left = mTabIndicator.get(position);
   ChangeColorIconWithTextView right = mTabIndicator.get(position + 1);
   left.setIconAlpha(1 - positionOffset);
   right.setIconAlpha(positionOffset);
  }
 }
 @Override
 public void onPageScrollStateChanged(int state) {
 }
 @Override
 public void onClick(View v) {
  resetOtherTabs();
  switch (v.getId()) {
  case R.id.id_indicator_one:
   mTabIndicator.get(0).setIconAlpha(1.0f);
   mViewPager.setCurrentItem(0, false);
   break;
  case R.id.id_indicator_two:
   mTabIndicator.get(1).setIconAlpha(1.0f);
   mViewPager.setCurrentItem(1, false);
   break;
  }
 }
 /**
  * 重置其他的Tab
  */
 private void resetOtherTabs() {
  for (int i = 0; i 

ChangeColorIconWithTextView.java

package com.Sing.weixin;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.os.Looper;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.View;
public class ChangeColorIconWithTextView extends View {
 private Bitmap mBitmap;
 private Canvas mCanvas;
 private Paint mPaint;
 /**
  * 颜色
  */
 private int mColor = 0xFF45C01A;
 /**
  * 透明度 0.0-1.0
  */
 private float mAlpha = 0f;
 /**
  * 图标
  */
 private Bitmap mIconBitmap;
 /**
  * 限制绘制icon的范围
  */
 private Rect mIconRect;
 /**
  * icon底部文本
  */
 private String mText = "demo";
 private int mTextSize = (int) TypedValue.applyDimension(
   TypedValue.COMPLEX_UNIT_SP, 10, getResources().getDisplayMetrics());
 private Paint mTextPaint;
 private Rect mTextBound = new Rect();
 public ChangeColorIconWithTextView(Context context) {
  super(context);
 }
 /**
  * 初始化自定义属性值
  * 
  * @param context
  * @param attrs
  */
 public ChangeColorIconWithTextView(Context context, AttributeSet attrs) {
  super(context, attrs);
  // 获取设置的图标
  TypedArray a = context.obtainStyledAttributes(attrs,
    R.styleable.ChangeColorIconView);
  int n = a.getIndexCount();
  for (int i = 0; i 

github:https://github.com/ganchuanpu/Demo_Sing_weixin

以上所述是小编给大家介绍的android 中viewpager+fragment仿微信底部TAG完美渐变效果,希望对大家有所帮助!


推荐阅读
author-avatar
yfx132435
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有