android 学习备忘录1

android 学习备忘录1

线性布局LinearLayout
android:layout_width = "fill_parent" 宽度填满父控件
android:layout_width = "wrap_parent" 宽度自动适应子控件
android:orientation = "vertical" 垂直的
android:orientation = "horizontal" 水平的

表格布局TableLayout
TableRow android:gravity= "center" 对齐方式

相对布局RelativeLayout
android:layout_centerInParent = "true" 在父控件中居中
android:layout_above ="@id/button1" 在该控件上方
android:layout_alignLeft ="@id/button1" 在该控件左边
android:layout_below 在该控件下方
android:layout_alignRight 在该控件右边

单帧布局FrameLayout
android:src 资源地址

坐标布局AbsoluteLayout
android:layout_x
android:layout_y

ToggleButton
开关控件

Canvas
canvas.drawColor(Color. BLACK );设置画布背景
canvas.drawRect 绘制矩形
canvas.drawText
RectF rf1 = new RectF(10,130,110,250);定义一个矩形
canvas.drawArc(rf1, 0, 45, true, paint);绘制弧形
canvas.drawOval(rf1,paint)绘制圆

Bitmap
myBitmap = BitmapFactory. decodeResource(getResources(), R.drawable. img);获得图片资源
canvas.drawBitmap( myBitmap , 10, 10, paint );绘制贴图

Animation动画
myAnimation = AnimationUtils. loadAnimation( this, R.anim. myanim ); 加载动画
myImageView = (ImageView) this .findViewById(R.id. myImageView);
myImageView.startAnimation( myAnimation ); 启动动画
paint .setAntiAlias( true);打开抗锯齿
      

MediaPlayer对象的获得
mediaPlayer = MediaPlayer. create( Context, resid);无参构造方法之外的一种

SoundPool
soundPool = new SoundPool(maxStreams, streamType, srcQuality);
用soundpool可以播一些短的反应速度要求高的声音, 比如游戏中的爆破声,而mediaplayer适合播放长点的。
maxStreams 同时播放的流的最大数量 streamType 流的类型,一般为AudioManager.STREAM_MUSIC srcQuality 采样转化率质量

soundPoolMap .put(1, soundPool.load( this , R.raw. dingdong, 0));
AudioManager amgr = ( AudioManager) this.getSystemService( AUDIO_SERVICE );
float streamVolumeCurrent = amgr.getStreamVolume(AudioManager. STREAM_MUSIC );
float streamVolumeMax = amgr.getStreamMaxVolume( AudioManager. STREAM_MUSIC);
float volume = streamVolumeCurrent/streamVolumeMax;
soundPool.play(sound,volume, volume, 1, loop, 1f);id,左声道音量,右声道音量,优先级,循环次数,速率(1为正常,0.5最低,2最高)

SurfaceView
SurfaceHolder 访问surface的接口,可以设置surface的大小和格式
surfaceHolder.CallBack 此接口接收surface变化的消息 只在surface.CallBack.surfaceCreated()和surface.CallBack.surfaceDestoryed之间有效
surfaceHolder .setType(SurfaceHolder. SURFACE_TYPE_PUSH_BUFFERS);不知所云的东西,但是视频的播放和照相机的使用都需要这样的设置。
getWindow().setFormat(PixelFormat. UNKNOWN ); unkown
getWindow().setFormat(PixelFormat.TRANSLUCENT);设置窗口格式为半透明
surfaceHolder.setFixedSize(176, 144);设置surface的大小
mediaPlayer .setDataSource(strPath);设置媒体的路径
mediaPlayer .setAudioStreamType(AudioManager. STREAM_MUSIC);设置音频类型

camera = Camera.open()、camera.release()照相机的开启和释放
camera.setPreviewDisplay(surfaceHolder)设置照相机预览的显示
camera.startPreview()开启照相机预览

Handler类
Handler类主要用于应用程序的主线程同用户自己创建的线程进行通讯

obtainMessage
通过Handler.obtainMessage()创建的message对象是可复用的。

Message对象的参数
arg1,arg2为int类型,如传输的数据的int类型时使用它们可以降低成本
obj Object类型
what 由用户定义的消息类型码,接收方可以根据该字段来确认接收到的消息是关于什么的

handler.sendEmptyMessage
当发送的消息只需要what字段时,可以使用该方法

Intent的构造方法
1.无参构造方法;2.Intent intent = new Intent(Context packageContext,Class<?> cls);
Context 例 MainActivity.this
Class<?> 例 com.ptn.MyService.class

MainActivity.this.startService(intent)
开启service,service是intent中的service

sendBroadcast(intent)
发送广播

Extras
Extras是一组键值对,包含了需要传递给目标组件并由其处理的一些额外信息。

Intent.setAction和IntentFilter.addAction的区分
Intent.setAction将一个行为(Action)放到intent里面,当intent被触发时就会执行该行为。例如 Intent.ACTION_CALL打电话。(当intent被触发就会拨打电话) 前提你得放一个电话号码格式为:intent.setData(Uri.parse("tel:" + phone));
IntentFilter.addAction为IntentFilter对象添加Action,也相当于在AndroidManifest.xml定义一样,定义的目的是过滤器只许当安卓的操作系统产生addAction中的事件咱们自定义的这个BroadcastReceiver类才能来接收这个广播,我们才能进行代码的进一步处理

BroadcastReceiver的使用需要进行注册和取消注册
registerReceiver(BroadcastReceiver, IntentFilter);
unRegisterReceiver(BroadcastReceiver);
可以写在MainActivity的onStart()和onStop()方法中或者Service的onStartCommand()和onDestory()方法中

stopSelf()
service用来结束自己的方法

OpenFile
FileOutputStream fout = OpenFileOutput(fileName, MODE_PRIVATE);
FileInputStream fin = OpenFileInput(fileName);
OpenFile如果文件不存在会自动创建文件,MODE_PRIVATE是默认的,输出流为从内存输出到文件,输入流为从文件输入到内存

EncodingUtils
String result = EncodingUtils. getString(buffer, ENCODING); buffer 是一个byte数组,ENCODING是“UTF-8”之类

IO流
获得assets中文件的IO流 InputStream in = getResources().getAssets().open( "text2.txt" );
获得resource中raw文件的IO流 InputStream in = getResources().openRawResource(R.raw.text1);




你可能感兴趣的:(android)