androidの常用基础应用知识总结
2014-10-28 11:36
489 查看
androidの常用基础应用知识总结
1, canvas.drawBitmap()使图片全屏显示
有时候我们这使用canvas.drawBitmap()时,需要使图片全屏显示,这个时候我们可以这样:
2. 返回键与Home键区别
back键默认行为是finish处于前台的Activity的即Activity的状态为Destroy状态为止,再次启动该Activity是从onCreate开始的(不会调用onSaveInstanceState方法)。Home键默认是stop前台的Activity即状态为onStop为止而不是Destroy,若再次启动它,会调用onSaveInstanceState方法,保持上次Activity的状态则是从OnRestart开始的---->onStart()--->onResume()。
3. android:paddingLeft与android:layout_marginLeft的区别
当按钮分别设置以上两个属性时,得到的效果是不一样的。
android:paddingLeft="30px" 按钮上设置的内容(例如图片)离按钮左边边界30个像素
android:layout_marginLeft="30px" 整个按钮离左边设置的内容30个像素
4 判断当前网络状态
5. 应用权限
<!-- 必须申明的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.VIBRATE"/>
6.. 设置activity 一直竖屏
<activity android:name=".MainActivity" android:screenOrientation="nosensor"></activity>
7. 设置屏幕一直亮
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
8. 设置进入界面加载过程,避免黑屏或者白屏现象
在主配置文件中,主函数中添加 android:theme="@style/Theme.NoDisplay"
9. 检查手机应用是否安装指定apk
10. 设置屏幕无title
import android.view.Window;
requestWindowFeature(Window.FEATURE_NO_TITLE);
11. back 键监听
12 .弹出对话框选项
13.获取设备管理,设备标示名称
Build bd = new Build();
String model = bd.MODEL; //poineer sw590
String brand=bd.BRAND; //poineer
14. 如何防止暴力点击button
(可以加个计时器,1~3秒后才可以点击第二下)
private Handler mHandler =new Handler();
public void onClick(View v){
v.setEnabled(false);
mHandler.postDelay(new Runable(){
public void run(){
v.setEnabled(true);
}
}),2000);
}
15.. GirdView 添加单个item 选择上的效果
点击后,图片周围出现绿色边框效果。
属性: pictureGridView.setSelector(R.drawable.menuitemshape);
然后在 drawable文件下,添加:menuitemshape.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- <solid android:color="#FF0000" /> -->
<stroke
android:width="2dip"
android:color="#00FF00" />
<corners android:radius="10dip" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="7dp" />
</shape>
16.屏幕边框为椭圆形,边角为弧形,不是直角
首先在布局文件中:定义一个外布局,设置:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/black"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="3px"
android:background="@drawable/round_rect_shape"
android:orientation="vertical" >
然后在drawable文件下,添加round_rect_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- Customize round rect -->
<stroke
android:width="2dip"
android:color="#FF99CC" />
<gradient
android:angle="90"
android:endColor="#99CCFF"
android:startColor="#99CCFF" /> <!-- #474C48 -->
<corners android:radius="5dip" />
</shape>
17. 图库使用
startActivity(new Intent(
Intent.ACTION_VIEW,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
.putExtra("slideshow", true).addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP));
18.home 键使用
startActivity(new Intent(Intent.ACTION_MAIN)
.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP)
.addCategory(Intent.CATEGORY_HOME));
19.拼音转换工具类
20. 一个应用在桌面显示两个图标
需要在主配置文件中,<application>下。对应的activity
记住两个图标,需要两个activity,中添加这个
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>配置
21. ScrollView 下只能有一个根布局,不能出现多个.
21. back键点击两次退出应用
1, canvas.drawBitmap()使图片全屏显示
有时候我们这使用canvas.drawBitmap()时,需要使图片全屏显示,这个时候我们可以这样:
DisplayMetrics displaymetrics = new DisplayMetrics(); height = getResources().getDisplayMetrics().heightPixels; width = getResources().getDisplayMetrics().widthPixels; Rectf rectF = new RectF(0, 0, width, height ); //屏幕宽和高 canvas.drawBitmap(bitmap, null, rectF, null);
2. 返回键与Home键区别
back键默认行为是finish处于前台的Activity的即Activity的状态为Destroy状态为止,再次启动该Activity是从onCreate开始的(不会调用onSaveInstanceState方法)。Home键默认是stop前台的Activity即状态为onStop为止而不是Destroy,若再次启动它,会调用onSaveInstanceState方法,保持上次Activity的状态则是从OnRestart开始的---->onStart()--->onResume()。
3. android:paddingLeft与android:layout_marginLeft的区别
当按钮分别设置以上两个属性时,得到的效果是不一样的。
android:paddingLeft="30px" 按钮上设置的内容(例如图片)离按钮左边边界30个像素
android:layout_marginLeft="30px" 整个按钮离左边设置的内容30个像素
4 判断当前网络状态
<span style="font-size:18px;">import android.net.ConnectivityManager; import android.net.NetworkInfo; public boolean isNetworkConnected() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ni = cm.getActiveNetworkInfo(); return ni != null && ni.isConnectedOrConnecting(); }</span>
5. 应用权限
<!-- 必须申明的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.VIBRATE"/>
6.. 设置activity 一直竖屏
<activity android:name=".MainActivity" android:screenOrientation="nosensor"></activity>
7. 设置屏幕一直亮
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
8. 设置进入界面加载过程,避免黑屏或者白屏现象
<style name="Theme.NoDisplay" parent="@android:Theme"> <item name="android:windowBackground">@null</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowIsTranslucent">false</item> <item name="android:windowAnimationStyle">@null</item> <item name="android:windowDisablePreview">true</item> <item name="android:windowNoDisplay">false</item> </style>
在主配置文件中,主函数中添加 android:theme="@style/Theme.NoDisplay"
9. 检查手机应用是否安装指定apk
boolean d() { String packageName = "com.iflytek.speechcloud"; List<PackageInfo> packages = getPackageManager().getInstalledPackages(0); for (int i = 0; i < packages.size(); i++) { PackageInfo packageInfo = packages.get(i); if (packageInfo.packageName.equals(packageName)) { return true; } else { continue; } } return false;<span style="background-color: inherit; font-family: 微软雅黑;">}</span>
10. 设置屏幕无title
import android.view.Window;
requestWindowFeature(Window.FEATURE_NO_TITLE);
11. back 键监听
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { exitApp(); return true; } return super.onKeyDown(keyCode, event); }
12 .弹出对话框选项
new AlertDialog.Builder(IndexActivity.this) .setTitle(getString(R.string.exittitle)) .setMessage(getString(R.string.exit)) .setIcon(R.drawable.iconapp) .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick( DialogInterface paramDialogInterface, int paramInt) { } }) .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() { public void onClick( DialogInterface paramDialogInterface, int paramInt) { finish(); } }).show();
13.获取设备管理,设备标示名称
Build bd = new Build();
String model = bd.MODEL; //poineer sw590
String brand=bd.BRAND; //poineer
14. 如何防止暴力点击button
(可以加个计时器,1~3秒后才可以点击第二下)
private Handler mHandler =new Handler();
public void onClick(View v){
v.setEnabled(false);
mHandler.postDelay(new Runable(){
public void run(){
v.setEnabled(true);
}
}),2000);
}
15.. GirdView 添加单个item 选择上的效果
点击后,图片周围出现绿色边框效果。
属性: pictureGridView.setSelector(R.drawable.menuitemshape);
然后在 drawable文件下,添加:menuitemshape.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- <solid android:color="#FF0000" /> -->
<stroke
android:width="2dip"
android:color="#00FF00" />
<corners android:radius="10dip" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="7dp" />
</shape>
16.屏幕边框为椭圆形,边角为弧形,不是直角
首先在布局文件中:定义一个外布局,设置:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/black"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="3px"
android:background="@drawable/round_rect_shape"
android:orientation="vertical" >
然后在drawable文件下,添加round_rect_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- Customize round rect -->
<stroke
android:width="2dip"
android:color="#FF99CC" />
<gradient
android:angle="90"
android:endColor="#99CCFF"
android:startColor="#99CCFF" /> <!-- #474C48 -->
<corners android:radius="5dip" />
</shape>
17. 图库使用
startActivity(new Intent(
Intent.ACTION_VIEW,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
.putExtra("slideshow", true).addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP));
18.home 键使用
startActivity(new Intent(Intent.ACTION_MAIN)
.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP)
.addCategory(Intent.CATEGORY_HOME));
19.拼音转换工具类
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; public class PinyinUtil { /** * @param list * @return 将集合中元素换成拼音 */ public static List<String> getPinyinList(List<String> list) { List<String> pinyinList = new ArrayList<String>(); for (Iterator<String> i = list.iterator(); i.hasNext();) { String str = (String) i.next(); try { String pinyin = getPinYin(str); pinyinList.add(pinyin); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } return pinyinList; } public static String getPinYin(String zhongwen) throws BadHanyuPinyinOutputFormatCombination { String zhongWenPinYin = ""; // 将中文变成字符数组 char[] chars = zhongwen.toCharArray(); for (int i = 0; i < chars.length; i++) { String[] pinYin = PinyinHelper.toHanyuPinyinStringArray(chars[i], getDefaultOutputFormat()); if (pinYin != null) { zhongWenPinYin += pinYin[0]; } else { zhongWenPinYin += chars[i]; } } return zhongWenPinYin; } private static HanyuPinyinOutputFormat getDefaultOutputFormat() { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.UPPERCASE);// format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// format.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);// return format; } }
20. 一个应用在桌面显示两个图标
需要在主配置文件中,<application>下。对应的activity
<activity android:name="a.h.AActivity" android:label="@string/app_name" android:theme="@style/Theme.NoDisplay" android:icon="@drawable/icon"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
记住两个图标,需要两个activity,中添加这个
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>配置
21. ScrollView 下只能有一个根布局,不能出现多个.
21. back键点击两次退出应用
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: long secondTime = System.currentTimeMillis(); if (secondTime - firsttime > 2000) { // 如果两次按键时间间隔大于2秒,则不退出 toast(getResources().getString(R.string.exit)); firsttime = secondTime;// 更新firstTime return true; } else { // 两次按键小于2秒时,退出应用 finish(); } break; } return super.onKeyUp(keyCode, event); }当使用 onBackpress() 方法返回时候无效果
相关文章推荐
- Android常用基础知识个人总结(一)
- android应用开发常用知识总结
- linux ,Android基础知识总结
- android linux基础知识总结
- android-基础知识:android调试总结(Log日志输出, Debug, 单元测试)
- Android学习笔记:Android基础知识总结
- android linux 最全的基础知识总结
- Android基础知识总结(转载)
- android linux 基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结(1)
- android linux 基础知识总结
- Android基础知识总结
- android linux 基础知识总结
- Android基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- linux ,Android基础知识总结
- Android学习笔记:Android基础知识总结