热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android设置位置,安卓自定义位置

android高德地图怎么由城市名称设置位置第一步,我们需要下载SDK第二步,解压后,将jar包放进libs文件夹中,并加入环境变量中。第三步,在AndroidManifest.x

android高德地图怎么由城市名称设置位置

第一步,我们需要下载SDK

第二步,解压后,将jar包放进libs文件夹中,并加入环境变量中。

第三步,在AndroidManifest.xml文件中配置权限:

!--用于进行网络定位--

uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/

!--用于访问GPS定位--

uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/

!--用于获取运营商信息,用于支持提供运营商信息相关的接口--

uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/

!--用于访问wifi网络信息,wifi信息会用于进行网络定位--

uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/

!--用于获取wifi的获取权限,wifi信息会用来进行网络定位--

uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/

!--用于访问网络,网络定位需要上网--

uses-permission android:name="android.permission.INTERNET"/

!--用于读取手机当前的状态--

Android控件位置设定

想法有问题,自己实现没有必要也麻烦。

使用楼上说的相对布局即可,就是为了方便你的这种需求而定义的布局类。默认就是从左上角开始布局。

android中textview控件中的文字的位置是如何调整?

有2种方法可以设置TextView文字居中:

一:在xml文件设置:android:gravity="center"

二:在程序中设置:m_TxtTitle.setGravity(Gravity.CENTER);

备注:android:gravity和android:layout_gravity的区别在于前者对控件内部操作,后者是对整个控件操作。

例如:

android:gravity="center"是对textView中文字居中

android:layout_gravity="center"是对textview控件在整个布局中居中

其实很容易理解,出现"layout"就是控件对整个布局的操作

TextView文字垂直靠左居中,

设置android:gravity="center_vertical|left"。

android:gravity="center", 垂直水平居中

LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式。

举个例子,我们可以通过设置android:gravity="center"来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:layout_gravity="right"来让EditText组件在LinearLayout中居中显示。

TextView

android:layout_

android:layout_

android:textSize="40sp"

android:gravity="center_vertical|left"

android:text="@string/hello_world" /

android view怎么设置位置

动态改变控件位置的方法:

setPadding()的方法更改布局位置。

如我要把Imageview下移200px:

ImageView.setPadding( ImageView.getPaddingLeft(), ImageView.getPaddingTop()+200,

ImageView.getPaddingRight(), ImageView.getPaddingBottom());

动态改变控件大小的方法:

1、声明控件参数获取对象 LayoutParams lp;

2、获取控件参数: lp = 控件id.getLayoutParams();

3、设置控件参数:如高度。 lp.height -= 10;

4:、使设置生效:控件id.setLayoutParams(lp);

Android默认设置保存在哪里

有两个位置:

1、framework公用的framework-res.apk中

frameworks/base/core/res/res/values/config.xml

会生成/system/framework/framework-res.apk,其中的resource可以被系统其它部分使用。如config_lowBatteryWarningLevel就在config.xml中定义:

integer name="config_lowBatteryWarningLevel"15/integer

java中引用方法为:

com.android.internal.R.integer.config_lowBatteryWarningLevel。

2、SettingProvider的默认配置

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

指定了SettingProvider中各配置项的默认值。如:

bool name="def_auto_time"true/bool

在SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中,def_auto_time被读出并写入数据库。

Android入门 在ListView中如何进行精确的位置设定

亲,记得好评哟!

在android的开发中,经常会遇到需要主动去设定某条ListItem的位置的需求。设置位置的函数有

ListView.setSelection(int position)

ListView.setSelectionFromTop(int position, int y);

其中

position指的是指定的item的在ListView中的索引,注意如果有Header存在的情况下,索引是从Header就开始算的。

y指的是到ListView可见范围内最上边边缘的距离。

函数有了,现在就是根据自身需求来进行设置。

这次遇到的需求,ListView要求是从下往上展示的,并且当Cursor更新时,要保持住原先的最上方的item(不包括header)的位置不变,然后新的历史数据在原先那条item上方继续向上展示。如图:

ListView从下往上展示,也就是

android:stackFromBottom="true"

但是发现这一属性的设置不会影响索引的排序顺序,也就是item的索引都是从上往下递增的,不会变成从下往上递增。索引为0的item,都是在ListView的最上方的item(或header).

那么当Cursor更新时,原先第一条的索引便会发生变化。要想保持住它(图中的 R)的位置。步骤如下:

(1)获取这一条在新Cursor中的位置(posiition)

(2)获取这一条在更换Cursor后ListView中的位置。

(4)由于ListView的可滚动的属性,我们需要记录更换Cursor前可视的第一条item的索引(ListView.getFirstVisiblePosition())

(3)区分FirstVisiblePosition是0和大于0的情况。由于header,也就是图中的Loading那一条在新数据出来后是会消失的。

(4)当FirstVisiblePosition为0时实际指向的是header,我们要保持位置不变的是header下面第一条(R)的位置。那么此时要设置FirstVisiblePosition为1

(5)当FirstVisiblePosition大于0时实际指向的就是item,但是我们需要设置FirstVisiblePosition为0。*

(6)我们根据FirstVisiblePosition用ListView.getChildAt(int position)函数获取对应的item的View,再根据View.getTop()函数获取到ListView顶部的距离Y。

这样ListView.setSelectionFromTop(int position, int y)所需的两个参数 position 和 y就都有了。

*注解:ListView.getChildAt(int position), 这个position指的是在可视的item中的索引,跟cursor里的位置是大不一样的。可以看看ListView.getChildCount()函数得到个数是小于或等于Cursor里的个数的(不考虑header的话)。虽然一共可能有20条数据,但是界面只能看到8条,那么这个ChildCount大约就是8了。另一方面, FirstVisiblePosition取出的是在总的条数中的索引,再将会消失的header考虑进来,所以就是 FirstVisiblePosition为0时要设为1,大于0时又要设为0。

下面上代码:

调用的代码:

int headerCount = mListContainer.getListView().getHeaderViewsCount();

int firstVisiblePos = mListContainer.getListView().getFirstVisiblePosition();

int newCursorPosition = getPositionInNewCursor(cursor.getCount(), firstVisiblePos);

int offsetY = getOffsetY(cursor, firstVisiblePos, newCursorPosition);

mAdapter.changeCursor(cursor);

mUpRefreshLayout.setVisibility(View.GONE);

mListContainer.getListView().setSelectionFromTop(newCursorPosition + headerCount, offsetY);

getPositionInNewCursor函数:

private int getPositionInNewCursor(int newCursorCount, int firstVisiblePos){

if(firstVisiblePos == 0){

firstVisiblePos += 1;

}

int headerCount = mListContainer.getListView().getHeaderViewsCount();

int newCursorPos = newCursorCount - mAdapter.getCount() + firstVisiblePos - headerCount;

return newCursorPos;

}

getOffsetY函数:

private int getOffsetY(Cursor cursor, int firstVisiblePos, int newCursorPosition){

int y;

View firstVisibleItem = null;

if(firstVisiblePos == 0){

firstVisibleItem = mListContainer.getListView().getChildAt(1);

}else{

firstVisibleItem = mListContainer.getListView().getChildAt(0);

}

y = firstVisibleItem.getTop();

View timeView = firstVisibleItem.findViewById(R.id.time_text_view);

if(timeView != null timeView.getVisibility() == View.VISIBLE){

Cursor curItem = (Cursor)mAdapter.getItem(newCursorPosition);

Cursor preItem = (Cursor)mAdapter.getItem(newCursorPosition - 1);

if(curItem != null || preItem != null){

long curTimeStamp = curItem.getLong(MessagesProjection.JEDI_CREATE_DATE_INDX);

long preTimeStamp = preItem.getLong(MessagesProjection.JEDI_CREATE_DATE_INDX);

if(Math.abs(curTimeStamp - preTimeStamp) = SHOW_TIME_STAMP_TEN_MINS){

LayoutParams param = (LinearLayout.LayoutParams)mTimeView.getLayoutParams();

y += mTimeView.getHeight() + param.topMargin + param.bottomMargin;

}

}

}

return y;

}

getOffsetY中有一段计算图中TimeStamp的高度的代码,不关心的可以自己跳过一下。


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文介绍了一个Magento模块,其主要功能是实现前台用户利用表单给管理员发送邮件。通过阅读该模块的代码,可以了解到一些有关Magento的细节,例如如何获取系统标签id、如何使用Magento默认的提示信息以及如何使用smtp服务等。文章还提到了安装SMTP Pro插件的方法,并给出了前台页面的代码示例。 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • scrcpy通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备。它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需要任何ro ... [详细]
  • 2021年最详细的Android屏幕适配方案汇总
    1Android屏幕适配的度量单位和相关概念建议在阅读本文章之前,可以先阅读快乐李同学写的文章《Android屏幕适配的度量单位和相关概念》,这篇文章 ... [详细]
  • 这两天用到了ListView,写下遇到的一些问题。首先是ListView本身与子控件的焦点问题,比如我这里子控件用到了Button,在需要ListView中的根布局属性上加上下面的这一个属性:and ... [详细]
  • 在最近的一系列文章,对midipadAPP,有一个关于一个radialgradiant渲染每个padview利用的探讨,对审美的原因&#x ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
author-avatar
井底蛙的天空13
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有