方法一:
给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。
paint.setAntiAlias(true);
方法二:
给Canvas加上抗锯齿标志。有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。
canvas.setDrawFilter(new PaintFlagsDrawFilte(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
调整Activity中自定义视图(View)的大小
view本身响应onMeasure事件:
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec){
int height = View.MeasureSpec.getSize(heightMeasureSpec);
int width = View.MeasureSpec.getSize(widthMeasureSpec);
setMeasuredDimension(width,height); //这里面是原始的大小,需要重新计算可以修改本行
}
view所在的activity调用改view大小:
LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) mView.getLayoutParams();
linearParams.height = 400;
mView.setLayoutParams(linearParams);
禁止屏幕随手机旋转变化
在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation="landscape"属性。
landscape = 横向,portrait = 纵向
避免在转屏时重启Activity
每次屏幕方向切换Android都会重启Activity,一种方法是在Activity销毁前保存当前的状态,在Activity再次创建的时候恢复状态;
第二种方法是避免在转屏时重启Activity,可以通过在AndroidManifest.xml文件中重新定义方向。
(给每个Activity加上android:configChanges="keyboardHidden|orientation")
然后在需要控制屏幕显示方向的Activity中重写onConfigurationChanged(Configuration newConfig)方法,这样在转屏时就不会重启Activity了,转为发送事件让Activity自己处理。比如:
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
setContentView(R.layout.file_list_landscape);//横向
}else{
setContentView(R.layout.file_list);//竖向
}
在模拟器中可以按 CTL+F11 模拟做屏幕旋转。
启动一个程序
Intent intent=new Intent();
intent.setComponent(new ComponentName(
"com.android.calendar", "com.android.calendar.LaunchActivity"));
startActivity(intent);
格式化日期使用SimpleDateFormat
String format = "MMM dd yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(format);
titleText=sdf.format(c.getTime());
获取屏幕分辨率
Display display = getWindowManager().getDefaultDisplay();
display.getWidth();
获取XML中的资源
String[] countries = getResources().getStringArray(R.array.countries_array);
getResources().getDrawable();