微信小程序定位不准怎么解决
编辑:小飞燕 发布时间:2021-03-18 08:26:49
比较近有用户说微信小程序定位不准,主要体现在小程序获取经纬度的定位功能开发上,但比较终发现小程序的定位结果与实际相差1 km。小编在搜索信息后找到了解决办法。我们来看看。
在这里我们可以找到当前位置的纬度和经度
getlocation:函数
{
var that=this wx.getlocation(
{
成功:功能(res) {
console.log(res)
that.setdata({
haslocation: true,位置:格式位置(res经度,res纬度)//这是获取纬度和经度
})
}
})
},
//将经度和纬度转换为城市名称和街道地址:
onload:函数(选项){
console.log('onload ')
that=this
wx.getlocation({
成功:功能(res) {
wx.request({
url : ' http://api . map . baidu.com/geocoder/v2/?ak=btsvvwf0 tm1 zubezfz6 qqwfcallback=renderreverselolocation='
res.latitude ',' res .经度' output=jsonpois=1 ',data: {},header : { ' content-type ' : ' application/json ' },成功:功能(操作){
console.log(ops.data)
}
})
//console.log(res)
//那个. setdata({
//haslocation: true,//location : format location(res .经度,res .纬度)
//})
}
})
}
此处使用的微信小程序开发文档已启动https请求
参照文本中的代码重新开发一次,就会出现上图所示的小程序页面。只要出现这个页面,微信小程序定位不准的问题就说明已经成功解决了。你学会了吗?更多相关信息,请关注源社网小节目频道。
下面是题目的开头。微信小程序标签栏的文字颜色怎么改?标题到此结束
在微信小程序的标签栏中修改文本颜色是一件复杂的事情。没有相应的教程和准确的代码,很难开发成功。所以小编要教你如何修改微信小程序标签栏的文字颜色。
相信大家都看过微信小程序图标颜色渐变的过程。感觉牛逼吗?不得不说,微信团队真的是一个非常强大的团队,无论是设计师还是开发者。
带大家看看微信标签图标和字体颜色渐变的过程。先拍照!,我学习了一种快速制作gif动态图片的方法。正好,之前一直想写点东西。
一直苦于不知道怎么生成动态图,现在终于学会了,哈哈,让我偷偷玩一会。好吧,就照上面这张。
好了,效果图也看到了,我就不啰嗦了,直接上主题看小程序的源代码
[java] view plain copypackage moon .微信. view
导入android . content . context;
导入android . graphics . bitmap;
导入android . graphics . bitmapfactory;
导入android . graphics . canvas;
导入android . graphics . paint;
导入android . graphics . rect;
导入android . util . attributeset;
导入android . util . typed value;
导入android . view . view;
/**
* moon . zhong于2021年2月4日创作。
*/
public class tabitem扩展视图{
/*字体大小*/
private int mtextsize
/*字体选定颜色*/
private int mtextcolorselect
/*未选择字体时的颜色*/
private int mtextcolornormal
/*取消选中时用于绘制字体的画笔*/
私人油漆mtextpaintnormal
/*选中时用于绘制字体的画笔*/
private paint mtextpaintselect
/*每个项目的宽度和高度,包括字体和图标*/
private int mviewheight,mviewwidth
/*字体内容*/
私有字符串mtextvalue
/*选中时图标*/
私有位图微正常;
/*未选中时的图标*/
私有位图微型选择;
/*用于记录字体大小*/
private rect mboundtext
/*选择图标后刷*/
private paint miconpaintselect
/*是选中时图标的画笔*/
私人油漆
public table tem(context context){
this(上下文,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(he
ightsize,所需高度);
打破;
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);
setcontentview(请参阅layout.activity_main):
mfragmentmap=新hashmap
mview pager=(view pager)findviewbyid(r . id _ view _ pager);
mviewpager。setoffscreenpagelimit
mviewpager.setadapter(新页面适配器(getsupportfragment manager));
mtab视图=(tab视图)findviewbyid(r . id _ tab);
上一篇:微信小程序点赞样式怎么开发