android 其他技术总结

本文介绍了Android开发中的实用技巧,包括获取视图坐标、ListView优化、对话框样式定制、网络类型判断等,同时还涉及了数据库操作及内存管理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 获取View (或其他视图)在手机屏幕的坐标

int loaction[] = new Int([2];

view.getLoactionOnScreen(loaction);


loaction[0] : x 坐标

loaction[1] : y 坐标


2.ImageView设置图片给图片添加相框让多余部分不显示

android:scaleType="fitXY"


3.ListView 显示没有背景颜色,拉黑,没有中间项隔线

android:cachcolorHint=“#00ffffff”

android:descendantFocusability = "blocksDescendants"//焦点获取的时机

android:divider=“#00ffffff”//中间项的颜色

android:fadingEdge="none"

android:listSelector ="#00ffffff"//选择时颜色

android:stackFromBottom="true"// 让显示列表下面


4.对话框样式

<resources>

<style name="dialog_style" parent="@android:style/Theme.Dialog">

<item name="android:windowFrame">@null</item>

<item name="android:windowIsFloating">true</item>

<item name="android:windowIsTranslucent">false</item>

<item name="android:windowIsnoTitle">true</item>

<item name="android:windowBackground">#00ffffff</item>

<item name="android:backgroundDimEnable">true</item>

</style>

</resources>


5.android 网络类型判断 3G,WIFI ,WAP

public void getNetWorkType(Context context)

{

ConnectivityManager conn = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);

if (conn.getNetWorkInfo(ConnectivityManager.TYPE_WIFI).getState() ==NetworkInfo.State.CONNECTED)

{

// 无线

}


if (conn.getNetWorkInfo(ConnectivityManager.TYPE_MOBITLE).getState() == NetworkInfo.State.CONNECTED)

{

String host = android.net.Proxy.getDefaultHost();

if (host!= null)

{

//WAP

}else

{

//3G

}

}


}


6.android 数据库错误 android.database.CursorIndexOutofBoundsException :Index -1 requested with a sizeof!

解:数据库查找 cursor中只有一个结果,却要查找第-1个,可以使用 cursor.moveFridt()就解决!


7.获取drawable 文件资源中的图片文件(名字,id值)

Filed fs[] = R.drawable.class.getDeclaredFields();

for( Field f: fs)

{

f.getName();//文件名

context.getResources().getIdentifier(f.getName(), "drawable","com.text")// 文件名称,资源位置,项目名称

}


8.android 操作系统的内存回收机制

DalvikVM 虚拟机采用寄存器架构,而不是JVM 的栈结构

android 基于进程中运行的组件及其状态规定了默认的五个回收优先级

IMPORTANCE_FOREGROUND

IMPORTANCE_VISIBLE

IMPORTANCE_SERVICE

IMPORTANCE_BACKGROUND

IMPORTANCE_EMPTY

ActivityManagerService 集中管理所有进程的内存资源分配,常用方法

trimApplications(),updateOomAdjlocked(),activityIdleItermal()

默认回收过程,可以分两个层次:内存回收与内核级内存回收

回收入口: activityIdleItermal()触发的三种情况:调用新的应用,返回退出当前应用,当前被覆盖

当ActivityManagerService 接收到异步信息IDLE_TIMEOUT_MSG或者IDLE_NOW_MSG时,activityIdleIntermal()将来调用

IDLE_NOW_MSG 的处理方式:

case IDLE_NOW_MSG:

{

IBinder token = (IBinder)msg.obj;

activityIdle(token,null);

break;

}


9 android 数据库异常错误:get field slot from 0 col -1 field

查找字段不存在的原因!

10 android数据库 the bind value at index is null 字段保护“null” 空值

11 SVN previous uperation has not finished run "cleanup" if it was iterrunpted SVN 正在运行时被打断,

解决:右击项目-->svn--->refresh/cleanup



12 android 中建议使用 SparseArray 代替Map 使用提高效能的问题!具体可以看下源码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值