android注意事项,小技巧


2.多点击事件implements OnClickListener

private void initListener() {
iv_select.setOnClickListener(this);
}

public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_select:
showNumberList();
break;
}

}

1.布局可以叠加在一起,RelativeLayout,也可以用FrameLayout

0.  UI特效大全网站:http://www.23code.com/

0.  查看系统所有空间的样式:E:\sdk1\adt-bundle-windows-x86-20131030\sdk\platforms\android-19\data\res\values---style    :找到文件修改放在工程中,覆盖系统的;模仿系统代码使用

继承父类:重写属性

<style name="widget_text"parent="@android:style/Widget.ProgressBar.Horizontal">

1.  生成方法返回的值, findViewById(R.id.listview);----------------------ctrl+2+L

2.  都可以实现

3.  颜色的十六进制

4  .静态代码块:

一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用

比如main方法就必须是静态的 这是程序入口

两者的区别就是:静态代码块是自动执行的;

静态方法是被调用的时候才执行的.

1.      大一点的数据存储到本地,一般用序列化(XML)

2.      生成get,set方法----右键?—Source—Generate Getters and Setters

有参构造函数:Source—Generate Constructor using Fields

无参构造函数:  Generate Constructors fromSuperclass

3.      增强for循环------------for(Personperson:personList)

4.      int类型转换成string类型:如果在循环中或大量转换,不要用,会降低效率;

应该用valueof();

5.      ctrl+点击:查看类的源码:-----------------------导入源码—Attach Source---Android-18

6.      ctrl+F   :搜索关键字

7.      Android not Responding(应用程序无响应) 阻塞了主线程 ANR异常

8.      只有原始的线程(主线程, ui线程)才能修改view对象.

9.      访问网络一般用子线程

10.  手机和模拟器默认为utf-8

11.  Toast.makeText(MainActivity.this,state, 0).show();-----------------context

12.  *******:android导入jar包----------放进工作空间libs目录下------然后在工程中配路径-----BuildPath—ConfigureBuild Path---Add External JARs

13.  Activity里面就使用了LayoutInflater来载入界面,通过getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法可以获得一个 LayoutInflater, 也可以通过LayoutInflaterinflater = getLayoutInflater();来获得.然后使用inflate方法来载入layoutxml, 

14.   颜色16进制:--------------------------见资料中图片

15.  下载时服务器一般返回的是206----------可以使用if(code/100==2)来判断

22.  动态清空Linearlayout中的布局,removeAllViews()

23. 进度条可以在子线程中修改,因为进度条已经封装了handler方法

24. 开启activity获得返回值

25. 配置Activity横屏,在配置文件中配置,android;screenOrientation

26. onBackPressed()-----------------------捕获返回键

27.四大组件:a. activity   b.  content provider(内容提供者)

             c broadcast receiver(广播接收者)

             d. service(服务)

28.找错误时,找我们代码所在的包名

29.private类只暴露某个方法,新建一个接口

30 图片可以修改----------------------------位图bitmap

31. 同步代码:方法是顺序执行

    异步代码:开新的线程执行代码

32. 计时器:Timer()---------------------39播放器的进度条

33. 把一个文件的Uri显示出来:Uri.fromFile(file)

34. 自定义旋转进度---------------------样式和主题模块中

35. 夜间模式:定义两个主题

36. 版本控制各种安装文档-----见资料

37. 公司中版本控制一般写完一段提交一段*******

38. 创建工程时最好不要选择最大版本,防止以后新版本无法安装

39. 快速导包:ctrl+shift+o

40. Search Everything:速度最快的文件搜索软件

41. 工具类:StreamTools.java  :把流转换成字符串

42. 工具包(拷贝到libs下):   afinal_0.5_bin.jar        :提供下载,断点下载

43. 查找:   Ctrl+O

44. 判断是否为空:TextUtils.isEmpty(string)

45. 跳转后使用finish(),不会保存到回退栈。

46. 系统源码:D:\安卓\adt-bundle-windows-x86-20131030\sdk\platforms\android-19

47. 控件中加入控件或图片等

  android:drawable........

48. 查看控件样式D:\安\adt-bundle-windows-x86-20131030\sdk\platforms\android-19\data\res\values\styles.ml

49. public void next(View view)

50.其他控件实施点击事件,直接在属性中加android:clickable=”true”   android:onClick=”next”

51. 查看API文档:Develop-----API Guides(api 引导):-----------直接查看例子

52. 自定义组合控件整体设置点击事件                                                                 

53. 不是四大组件的需要加上Context上下文

54. 音频资源:res目录下创建raw文件夹

55. 数据库放在工程assets目录下

56. Intent i=newIntent(HomeActivity.this,AtoolsActivity.class);尽量使用这种方式

57. 把数据库拷贝到assets目录并创建包com.itheima.mobilesafe.db.dao 包创建该类

   file:///android_aset/address.db 这种无法访问

   知识回顾:

WebView还可以加载图片Stringstr = "file:///android_asset/icon.png";

//把address.db拷贝到我们的/data/data/包名/files/address.db

 

58.打开已有数据库和sql语句操作          

Stringpath="data/data/com.example.mobilesafe/files/address.db";

              SQLiteDatabasedatabase=SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);

Cursor cursor = database

                                   .rawQuery(

                                                 "selectlocation from data2 where id = (select outkey from data1 where id = ?)",

                                                 newString[] { number.substring(0, 7) });

59.文本改变的监听  addTextChangedListener(newTextWatcher(){})

60. 输入框抖动和震动效果

.61.导入工程后改变不同api,右键-----Propertiesfor XXX

62.搜索代码:Ctrl+H

63.可以在服务中嵌套广播接收者

65.广播接收者不光可以在清单文件中注册,还可以在代码中注册------------接收去电广播

66.动态添加布局View   view =   View.inflate(this, R.layout.address_show,null);

67. 外部数据库放在asset目录下,再操作

68. 新建数据库放在db包中,操作数据库放在db.dao包中

69. Android测试类,放在一个独立的包中.test            

(1)新建一个测试类,继承AndroidTestCase

(2)在配置文件中配置相关

70.也可以新建一个测试工程

71.业务bean:放在一个独立的包下,.domain------------------------------类似人物类等

72.findViewById() -----遍历查找id------listview优化

73.实时更新listview中的内容 ------手机卫士05

74.使数据倒着显示,即新添加的数据在上面,倒着查数据库:select number,mode from blacknumber order by _id desc

75.状态选择器:按下改变状态

76. builder.setPositiveButton("确定", newDialogInterface.OnClickListener() {});  对话框

77.listview数据改变实时,     adapter.notifyDataSetChanged();    通知适配器数据改变了

78.广播接收者如果在清单文件中配置,程序一旦加载就无法关闭。用代码注册则可以关闭(在服务中注册广播接收者)

79.xml是跨平台的,其他语言也可以解析
80.在子线程中更新简单的ui,像吐司,可以用runOnUiThread(newRunnable(){public void run(){}}

81.睡眠:直接用try{Thread.sleep(5000);}catch{}

82.消耗时间的------放在子线程中;

83.可以直接在子线程中运行UI的特例:

runOnUiThread(new Runnable(){

public void run(){

}

}

84.listview的滚动事件

85.listview数据太多时使用分批显示,如果更多就使用分页显示

86. 在代码中设置的宽高值都是像素px,不能适配各种手机

87.带checkbox的item点击事件,checkbox会抢走焦点,见博客

88.    adapter.notifyDataSetChanged();-------------通知适配器数据改变了

89. 当集合在迭代的时候。不能修改集合的大小

90.尽量使用9.path格式的图片,可以拉伸

91. timer = new Timer();

              //初始化一个定时任务

             

              timerTask= new TimerTask() {

                    

                     @Override

                     publicvoid run() {

92. 如果是在服务里面往activity界面跳的话。需要设置flag


93.代码习惯

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		initView();
		initListener();
		

94.动态创建一个Listview或其他,不用布局,常用于简单的使用

listView = new ListView(this);

95.权重为一

<span style="font-size:14px;">android:layout_width="0dp"
android:layout_weight="1"</span>

96..假如listview的item中有Button,ImageButton,CheckBox等会强制获取焦点的view
  此时,listview的item无法获取焦点,从而无法被点击
  解决方法:给item的根布局增加以下属性
  android:descendantFocusability="blocksDescendants"
  设置之后,Button获取焦点,item中其他控件也可以获取焦点

 



1. IDE:
Intelligent Development Environm的简称。即智能开发环境。是一种开发工具。常用的IDE有adt-bundles和Android studio。两个都需要配置jdk。

2. ADT:
Android Development tools的简称。即Android开发工具。ADT为Eclipse的插件。在Eclipse和SDK之间起了一个桥梁的作用。

3. SDK:
Soft Development Kit的简称。软件开发工具包。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。

4. JDK:
Java的开发工具包。包括了Java运行环境、Java工具和Java基础类库。
5. NDK:
概念:
(1).NDK是一系列工具的集合。帮助开发者快速开发C/C++的动态库。
并能自动将so和Java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
(2).NDK将是Android平台开发支持C开发的开端。
作用:
(1).代码的保护。由于Java层代码很容易被反编译,而C/C++库反编译难度很大。
(2).可以方便的使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
(3).提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
(4).便于移植。用C/C++写的库可以方便的在其他的嵌入式平台上再次使用。

Android中IDE、ADT、SDK、JDK、NDK的含义解释

 

 

 

 

 

 

 

 

 

 

 

 

 

 


1.底部为多个TextView,ToolBarUtil自动添加相应的选项--------xmpp即时聊天
2.动态修改textView里面的drawableTop属性
   tv.setCompoundDrawablesWithIntrinsicBounds(0, iconArr[i], 0, 0);
3.代码中设置控件的布局
             int width = 0;
            int height = LinearLayout.LayoutParams.MATCH_PARENT;
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);
            //设置weight属性
            params.weight = 1;
            container.addView(tv, params);

            //保存textView到集合中
            mTextViews.add(tv);
4.线程工具ThreadUtils
public class ThreadUtils {
    /**
     * 子线程执行task
     */
    public static void runInThread(Runnable task) {
        new Thread(task).start();
    }

    /**
     * 创建一个主线程中handler
     */
    public static Handler mHandler = new Handler();

    /**
     * UI线程执行task
     */
    public static void runInUIThread(Runnable task) {
        mHandler.post(task);
    }
}
  使用:
子线程:ThreadUtils.runInThread(new Runnable() {
   @Override
   public void run() {
}
})
主线程:
ThreadUtils.runInUIThread(new Runnable() {
   @Override
   public void run() {

 

 

5.控件边框颜色值和背景颜色值

<?xml version="1.0" encoding="UTF-8"?>  
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">   
<!-- 边框的颜色值 --><item>
      <shape>   
            <solid android:color="#f34649" />
            <corners android:radius="6dp" />    
           
      </shape>   
</item>   
<!-- 主体背景颜色值-->
<item android:bottom="1dp" android:right="1dp" android:top="1dp" android:left="1dp">   
     <shape>   
      <gradient android:startColor="#ffffff" android:centerColor="#ffffff"
        android:endColor="#ffffff" android:type="linear" android:angle="90"
        android:centerX="0.5" android:centerY="0.5" />  
   
    <padding android:left="2dp" android:top="2dp" android:right="2dp"  
        android:bottom="2dp" />  

    <corners android:radius="6dp" />    
     </shape>       
</item>  
</layer-list>

http://blog.csdn.net/brokge/article/details/9713041

 

 6. 手势识别器 GestureDetector


7.自定义对话框 ------手机卫士01


8.创建快捷方式 -------手机卫士07


9.widget小控件-----------手机卫士08


10.大图轮播无限------------大图轮播


11. 监听动画结束--------项目1   智慧北京


12. SharePreferece 封装


13.Fragment 基类 -----项目1 


14.防止ViewPager滑动-----项目1


15.ViewPager会默认预加载三个页面内,即执行三次(gerView),所以加载数据最好不放在getView中,否则会预加载下一个页面


16.应用某个功能,找到界面某个关键字,全局搜索Search--File Search


17.修改TabPageIndicator的代码    Ctrl+shift+t  查找具体类


18.判断是否为第一个页面,如果是就拦截-------------项目1

	/**
	 * 事件分发, 请求父控件及祖宗控件是否拦截事件
	 */
	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
		if (getCurrentItem() != 0) {
			getParent().requestDisallowInterceptTouchEvent(true);// 用getParent去请求,
																	// 不拦截
		} else {// 如果是第一个页面,需要显示侧边栏, 请求父控件拦截
			getParent().requestDisallowInterceptTouchEvent(false);// 拦截
		}
		return super.dispatchTouchEvent(ev);
	}


 


19. image.setScaleType()//指定图片是否填充ImageView


20.background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。


21.listView滑动时出现黑色:android:cacheColorHint="#fff"


22.改变Progress的图片 :   android:indeterminateDrawable="@drawable/custom_progress"    -添加自己画的图-----项目1---25


23.自动轮播条                 设置监听                           ------------项目1     


24.四种界面: 加载中, 加载错误,加载为空 ,加载成功   五种状态       根据服务器的数据 切换状态  ---------谷歌应用市场


25.线程池原理和具体实现-------------------谷歌应用市场2


26.透明图片----nothing-------------------谷歌应用市场2


27.  插值器   ----------------          ?






28.在工程中查找类名:ctrl+shift+T

 


环境变量的配置:http://blog.sina.com.cn/s/blog_9d52aeaf01013npe.html

http://blog.csdn.net/u012360634

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值