文档章节

底部导航

 胡欢哥哥
发布于 2015/10/10 10:02
字数 277
阅读 52
收藏 1

package com.example.widget;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.util.AttributeSet;

import android.view.Gravity;

import android.view.View;

import android.widget.ImageView;

import android.widget.ImageView.ScaleType;

import android.widget.LinearLayout;


public class BottomIndicator extends LinearLayout {



public BottomIndicator(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

// TODO Auto-generated constructor stub

}

public BottomIndicator(Context context) {

super(context);

// TODO Auto-generated constructor stub

}

public BottomIndicator(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

setOrientation(LinearLayout.HORIZONTAL);



}


public int[] selectItem;

public int[] noSelectItem;

public interface OnSelectItem{

public void setect(int pos);


}

public OnSelectItem onSelectItem;

public void setdrawId( int draw[],int noSelect[]){

selectItem=draw;

noSelectItem=noSelect;

setWeightSum(draw.length);

LayoutParams layoutParams=new LayoutParams(0,LayoutParams.WRAP_CONTENT);

layoutParams.gravity=Gravity.CENTER;

layoutParams.weight=1;

for (int i = 0; i < draw.length; i++) {

final int pos=i;

ImageView imageView=new ImageView(getContext());

Bitmap bitmap = BitmapFactory.decodeResource(getContext().getResources(),draw[i]);

int height =80;

Bitmap mBitmap = scalyByHigh(bitmap, height);

imageView.setScaleType(ScaleType.CENTER_INSIDE);

imageView.setImageBitmap(mBitmap);

imageView.setLayoutParams(layoutParams);

imageView.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

selectBottom(pos);

}

});

addView(imageView);


}

}

public Bitmap scalyByHigh(Bitmap bitmap,int high){//根据高来缩放

int mHeight = bitmap.getHeight();

int mWith=bitmap.getWidth();

int realWith=mWith*high/mHeight;

Bitmap realBitmap = Bitmap.createScaledBitmap(bitmap,realWith,high,true);

return realBitmap;


}


public void setImSelect(OnSelectItem onItemSelect){

this.onSelectItem=onItemSelect;


}


public void selectBottom(int pos){//选择哪个指标


for (int i = 0; i <getChildCount(); i++) {

ImageView child = (ImageView)getChildAt(i);

if(i==pos){

child.setImageResource(selectItem[i]);

child.setClickable(false);

if(onSelectItem!=null){

onSelectItem.setect(i);


}

}

else {

child.setImageResource(noSelectItem[i]);

child.setClickable(true);

}


}

}


}


© 著作权归作者所有

粉丝 1
博文 5
码字总数 1646
作品 0
合肥
私信 提问
定制化你的ReactNative底部导航栏

前言 接触过ReactNative(以下简称RN)的大概都知道,react-navigation提供了两种开箱即用的导航栏组件 createBottomTabNavigator createMaterialBottomTabNavigator 分别是这样的 尽管官方提供...

小绿和小蓝
01/29
0
0
Flutter 底部导航——BottomNavigationBar | 掘金技术征文

前言 Google推出flutter这样一个新的高性能跨平台(Android,ios)快速开发框架之后,被业界许多开发者所关注。我在接触了flutter之后发现这个确实是一个好东西,好东西当然要和大家分享,对...

Vadaski
2018/07/31
0
0
android底部导航栏怎么能一直存在整个项目中呢

底部导航我能实现,但是如果跳到其他页面(非底部导航)的话,底部导航栏就没有了,谁能给我一个例子,或者解决方法,谢谢了

如果‘先生
2013/03/02
3.9K
5
RN项目中实现React-Navigation动态底部导航栏

需求 这是去年 App 项目提出的一个需求,因为我们做的这个 App 区分了很多渠道,同时登录用户也有很多状态,一些菜单需要动态的显示隐藏。项目是使用的 React-Native 框架,路由库选择官方推...

风霜秋月
06/11
0
0
StatusBar、ActionBar tips

1,StatusBar颜色 1.1 主题设置 在主题(theme)中设置windowTranslucentStatus为true将填充顶部的状态栏区域。(有虚拟按键的设备上)设置windowTranslucentNavigation为true将填充底部导航...

lightUp
2015/10/18
104
0

没有更多内容

加载失败,请刷新页面

加载更多

MongoDB系列-解决面试中可能遇到的MongoDB复制集(replica set)问题

关注我,可以获取最新知识、经典面试题以及微服务技术分享   MongoDB复制集(replica set):MongoDB复制集维护相同数据集的一组mongod进程,复制集是生产部署的基础,具有数据冗余以及高可用...

ccww_
28分钟前
2
0
SpringBoot系列:Spring Boot集成Spring Cache,使用RedisCache

前面的章节,讲解了Spring Boot集成Spring Cache,Spring Cache已经完成了多种Cache的实现,包括EhCache、RedisCache、ConcurrentMapCache等。 这一节我们来看看Spring Cache使用RedisCache。...

杨小格子
37分钟前
2
0
OpenJDK之CountDownLatch

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CountDownLatch是Doug Lea在JDK1.5中引入的,作用就不详细描述了, await()方法,如果还有线程在执行,那么当前线程...

克虏伯
43分钟前
3
0
简单编程

1.编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include<stdio.h>int main(){char name[3];char family[3];printf("Please input your name and family:\n...

电子工程197沈志初
47分钟前
4
0
详解Mysql分布式事务XA(跨数据库事务)

在开发中,为了降低单点压力,通常会根据业务情况进行分表分库,将表分布在不同的库中(库可能分布在不同的机器上)。在这种场景下,事务的提交会变得相对复杂,因为多个节点(库)的存在,可...

slagga
52分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部