作者:小飞燕 发布时间:2021-04-16 10:13:47
导语本文整理了全网深受用户关注的个微信小程序tab栏文字颜色修改怎么弄经验知识,可以帮助您全面了解代理怎么做,小白也能成为高手,跟随小编一起来看一看吧!
微信小程序标签栏文字颜色修改是一件比较复杂的事情,如果没有相应的教程和准确的代码,很难开发成功。所以小编要来教大家微信小程序标签栏文字颜色修改怎么弄。
相信大家都见到了微信小程序图标颜色渐变的过程,是不是感觉很牛逼?不得不说微信团队确实是很厉害的团队,不管是从设计还是开发人员。
我带大家来看看,微信标签图标和字体颜色渐变的过程。先上图吧!学了一招制作gif动态图的快捷方法。刚好用的上,以前一直想写点什么东西,苦于一直不知道怎么生成动态图,现在终于学会了,哈哈,让我偷偷的乐一会。额,还是上图吧。
好了,效果图也看到了,那么我也就不多嗦了,直接进入主题,看小程序源码
[java]查看普通copypackage moon。微信。视角
导入安卓。内容。背景;
导入安卓。图形。位图;
导入安卓。图形。bitmapfactory
导入安卓。图形。画布;
导入安卓。图形。油漆;
导入安卓。图形。rect
导入安卓。util。attributeset
导入安卓。util。类型化值;
导入安卓。视图。视图;
/**
*月亮。钟于2021年2月四日创作。
*/
公共类表扩展视图{
/*字体大小*/
private int mtextsize
/*字体选中的颜色*/
private int mtextcolorselect
/*字体未选择的时候的颜色*/
private int mtextcolornormal
/*绘制未选中时字体的画笔*/
私人油漆mtextpaintnormal
/*绘制已选中时字体的画笔*/
私人油漆mtextpaintselect
/*每个项目的宽和高,包括字体和图标一起*/
private int mviewheight,mviewwidth
/*字体的内容*/
私有字符串mtextvalue
/*已选中时的图标*/
私有位图微正常;
/*未选中时的图标*/
私有位图微型选择;
/*用于记录字体大小*/
private rect mboundtext
/*已选中是图标的画笔*/
私人油漆
/*为选中时图标的画笔*/
私人油漆
公共表tem(上下文上下文上下文){
这个(上下文,null);
}
public table tem(context context,attributeset attrs) {
this(context,attrs,0);
}
public table tem(context context,attributeset attrs,int defstyleattr) {
super(context,attr,defstyleattr);
initview
inittext
}
/*初始化一些东西*/
private void initview {
mboundtext=new rect
}
/*初始化画笔,并设置出是内容*/
private void inittext {
mtextpaintnormal=新油漆;
mtextpaintnormal。setextsize(类型值。应用维度(类型值。complex _ unit _ sp,mtextsize,获取资源。getdisplay metrics));
mtextpaintnormal。set color(mtextcolornnormal);
mtextpaintnormal。setantias(true);
mtextpaintnormal。设置alpha(0x ff);
mtextpaintselect=新油漆
mtextpaintselect。setextsize(typedvalue。应用维度(typedvalue。complex _ unit _ sp,mtextsize,获取资源。getdisplay metrics));
多行文字绘制选择。设置颜色(多行文字颜色选择);
mtextpaintselect。setantias(true);
mtextpaintselect。设置alpha(0);
miconpaint select=new paint(油漆。anti _ alias _ flag);
miconpaintselect。设置alpha(0);
miconpaintnormal=新油漆(paint。anti _ alias _ flag);
miconpaintnormal。设置alpha(0x ff);
}
/*测量字体的大小*/
private void measuretext {
mtextpaintnormal。gettextbounds(mtext value,0,mtextvalue.length,mboundtext);
}
/*测量字体和图标的大小,并设置自身的宽和高*/
@覆盖
受保护的测量时无效(int width measure spec,int heightmeasurespec) {
整数宽度模式=测量规格。获取模式(宽度测量规格);
int height模式=测量规格。获取模式(高度测量规格);
int width size=测量规格。getsize(宽度测量规格);
int height size=测量规格。getsize(高度测量规格);
int width=0,height=0;
测量文本
int内容宽度=数学。max(mboundtext。宽度,微正常。get width);
int desired width=get padding left get padding right content width;
开关(widthmode) {
case measurespec.at_most:
width=math.min(widthsize,所需宽度);
打破;
case measurespec.exactly:
宽度=宽度尺寸
打破;
案例测量规格。unusecified :
width=desiredwidth
打破;
}
int content height=mboundtext。高度不正常。获取高度;
int desired height=getpaddingtop getpaddingtom内容高度;
开关(heightmode) {
case measurespec.at_most:
height=math.min(heightsize,所需高度);
打破;
case measurespec.exactly:
高度=heightsize
打破;
案例测量规格。unusecified :
高度=内容高度
打破;
}
setmeasureddimension(宽度、高度);
mviewwidth=getmeasuredwidth
mviewheight=getmeasuredheight
}
@覆盖
受保护的void ondraw(画布){
drawbitmap(画布);
drawtext(画布);
}
/*话图标,先画为选中的图标,在画已选中的图标*/
private void drawbitmap(画布画布){
int left=(mv view width-miconnormal。get width)/2;
int top=(mviewheight-miconnormal。获取height-mboundtext。身高)/2;
帆布。绘制位图(micrononnormal,左,上,micrononpaintnormal);
canvas.drawbitmap(miconselect,左,上,micon paint select);
}
/*画字体*/
private void drawtext(画布画布){
float x=(mv view width-mboundtext。宽度)/2.0f;
float y=(mviewheight微正常。获取高度mboundtext。高度)/2.0f;
canvas.drawtext(mtextvalue,x,y,mtextpaintnormal);
canvas.drawtext(mtextvalue,x,y,mtextpaintselect);
}
public void setextsize(int textsize){
this.mtextsize=textsize
mtextpaintnormal。settextsize(文本大小);
mtextpaintselect。settextsize(文本大小);
}
public void setextcolorscript(int mtextcolorscript){
这个。mtext color select=mtext color select;
多行文字绘制选择。设置颜色(多行文字颜色选择);
mtextpaintselect。设置alpha(0);
}
public void setextcolornnormal(int mtextcolornnormal){
这个。mtextcolornnormal=mtextcolornnormal;
mtextpaintnormal。set color(mtextcolornnormal);
mtextpaintnormal。设置alpha(0x ff);
}
public void setext值(字符串文本值){
这个。多行文字值=文本值;
}
public void seticontext(int[]icon selid,string textvalue) {
这个。miconselect=bitmapfactory。解码资源(获取资源,图标selid[0]);
这个。miconnormal=bitmapfactory。解码资源(获取资源,图标selid[1]);
这个。多行文字值=文本值;
}
/*通过希腊字母的第一个字母来设置每个画笔的透明度,从而实现现实的效果*/
public void settabalpha(float alpha){
int paint alpha=(int)(alpha * 255);
miconpaintselect。设置alpha(绘制alpha);
miconpaintnormal。设置alpha(255-绘制alpha);
mtextpaintselect。设置alpha(绘制alpha);
mtextpaintnormal。设置alpha(255-绘制alpha);
使无效;
}
}
分析:以上代码,小程序功能实现标签的每个项目的内容,在微信的项目中也就是,一个图标加一个字体,关键代码就在公共空间settabalpha(浮动alpha)这个方法,此方法是可视寻呼机切换项目时,不断改变偏移量来调用,从而不断改变
每个画笔的透明度,实现图标和颜色的渐变;是不是很简单?到这里其实我们颜色渐变的代码就已经实现了。接下来的内容可以忽略
这样我们只需要在主要活动的xml中定义一个线性布局,然后放如四个我们自定义的视角进去,就可以了。但是这样你就满足了吗?
我先来给你们看看我的主要活动的代码;
[java]查看简单的文案文案。微信;
导入安卓。支持。v4。app。碎片;
导入安卓。支持。v4。app。fragmentmanager
导入安卓。支持。v4。app。fragmentpageradapter
导入安卓。支持。v4。视图。查看寻呼机;
导入安卓。支持。。app。actionbaractivity
导入安卓。os。捆绑;
导入java。util。hashmap
导入java。util。地图;
导入月亮。微信。视图。选项卡视图;
公共班级主要活动扩展actionbaractivity {
私有字符串[] mtitle={ '微信', '通讯录', '发现', '我'};
private int[]micon select={ r . draw able。al _,r.drawable.al8,r.drawable.alb,r.drawable .ald };
private int[]miconnormal={ r . draw able。ala,r.drawable.al9,r.drawable.alc,r.drawable .ale };
private view寻呼机mview寻呼机
private tabview mtabview
私人地图mfragmentmap
@覆盖
受保护的创建时无效(bundle savedinstancestate){
超级。oncreate(savedinstancestate);
setcontent视图(r . layout。activity _ main);
mfragmentmap=new hashmap
mview pager=(view pager)findviewbyid(r . id。id _ view _ pager);
mview寻呼机。setoffscreenpagelimit(4);
mview寻呼机。set adapter(新页面适配器(getsupportfragmentmanager));
mtab视图=(选项卡视图)findviewbyid(r . id。id _ tab);
mtab视图。setview寻呼机(mview寻呼机);
}
私有片段getfragment(int position){
fragment fragment=mfragmentmap。get(位置);
if(fragment==null){
开关(位置){
案例0:
片段=新微信碎片
打破;
案例1:
fragment=new wecontactfragment
打破;
案例2:
fragment=new wediscoverfragment;
打破;
案例3:
片段=新游戏片段
//fragment=新的wemine片段;
打破;
}
mfragmentmap.put(位置,片段);
}
返回片段;
}
class pageadapter扩展fragmentpageradapter实现视图。onitemicontextselectlistener {
公共页面适配器(fragmentmanager fm){
超级(fm);
}
@覆盖
public fragment getitem(int position){
返回getfragment(位置);
}
@覆盖
public int[]oniconselect(int position){
int icon[]=new int[2];
icon[0]=micon select[位置];
icon[1]=micrononnormal[位置];
返回图标;
}
@覆盖
public string ontext select(int position){
返回m title[位置];
}
@覆盖
public int getcount
return mtitle.length
}
}
}
看了以上信息,应该很清楚如何修改微信小程序tab栏的文字颜色。希望这些信息对大家有帮助。更多相关信息,请关注源社网小节目频道。
下面是题目的开头。微信小程序如何修改风格效果?标题到此结束
如何达到修改微信小程序样式的效果?一个好看的微信小程序风格可以吸引更多的微信小程序用户。各位微信小程序开发者,可以修改微信小程序样式。以下内容供你参考。
如何修改微信小程序的样式?
如果想通过微信小程序达到修改风格的效果,可以这样做!
小程序的按钮变化与其类型属性有关,它的三个默认属性是:default ',' primary '和' warn ',其中default '是灰色属性,primary是蓝色,warn是红色,不能改变。
按钮1
按钮2
按钮3
按钮4
你可以看到这三个属性的button的类名是btn,为btn设置背景色时,发现只有不带类型的背景色发生了变化。(这个其实挺坑的。一个月前,改变颜色是默认属性。只用了很长时间就改变了。小程序还在成长,技术写不死。也许随时会改变。)。btn { margin-top :10 px;背景色:黄色;}
按钮1
按钮2
按钮3
wxss中的设置按钮悬停是一个改变状态的小程序样式。目前,我只发现状态样式可以在没有类型属性时生效:
。btn-hover:{ background-color : pink;}
而其他按钮悬停比按钮悬停优先级高。比如同时设置背景色会有设置的效果。other-button-hover,当没有type属性时当然会生效。
。button-hover { background : black;}
此时,样式为黑色
。button-hover { background : black;}。btn-hover { background-color :蓝色;}
此时,样式为蓝色
注:button-hover是默认的,所以您不需要向wxml添加类。other-button-hover需要在wxml中添加类名称hover-class,这是它们状态的样式。
所需微信小程序代码如下:
函数istel {
if(s!=null) {
可变长度=s .长度
if(length==11 /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1})|(14[0-9]{1})|)d { 8 })$/.测试)
{
返回真实的
}else{
返回错误的
}
}
}
页面({
数据:{
disabled:true,//是否可用
opacity:0.4,//设置透明度
},
//小程序跳转注册小程序页面
gotoregist:function{
wx.redirectto({url: '././pages/login/regist/regist'})
},
//手机的输入框
功能(e){
变量=这个
//console.log(e.detail.value)
var istel=istel(e.detail.value)
//console.log(istel)
if(istel){
that.setdata({
禁用:false,opacity:1
})
}else{
that.setdata({
disabled:true,opacity:0.4
})
}
},
//提交小程序按钮确认
sumit :函数(e){
console.log(e.detail.value)
if(例如细节。价值。passworld。length==0){
wx.showmodal({
标题: '密码不得为空,showcancel:false
})
}else{
上一篇:微信小程序底部选项卡开发步骤
下一篇:怎样设置微信小程序自定义弹窗
977位用户关注
586位用户关注
929位用户关注
287位用户关注
234位用户关注
789位用户关注
22位用户关注
40位用户关注
82位用户关注
30位用户关注
83位用户关注
31位用户关注