안 드 로 이 드 의 상용 기초 응용 지식 총화

안 드 로 이 드 의 상용 기초 응용 지식 총화
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. 리 턴 키 와 홈 키 의 차이
back 키 의 기본 동작 은 finish 가 프론트 에 있 는 Activity,즉 Activity 의 상태 가 Destroy 상태 일 때 까지 이 Activity 를 다시 시작 하 는 것 은 onCreate 에서 시작 합 니 다(onSave InstanceState 방법 을 호출 하지 않 습 니 다).홈 키 는 기본적으로 stop 프론트 데스크 톱 의 Activity 입 니 다.즉,상태 가 onStop 일 때 까지 입 니 다.다시 시작 하면 onSave InstanceState 방법 을 사용 합 니 다.지난번 Activity 상 태 를 유지 하 는 것 은 OnRestart 에서 시 작 됩 니 다.->onStart()->onResume().
3.android:paddingLeft 와 android:layotmargin Left 의 차이
버튼 이 상기 두 속성 을 각각 설정 할 때 얻 는 효 과 는 다르다.
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.  응용 권한
 
 
 
 
 
 
 
 
 
 
 
6.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.화면 제목 없 음 설정
import android.view.Window;
requestWindowFeature(Window.FEATURE_NO_TITLE);
11.백 키 감청
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.폭력 클릭 버튼 을 방지 하 는 방법
    (타이머 추가 가능,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 단일 아 이 템 선택 효과 추가
 클릭 하면 그림 주위 에 녹색 테두리 효과 가 나타 납 니 다.
   속성:pictureGridView.
setSelector(R.drawable.menuitemshape);
   그리고 drawable 파일 에 추가:
menuitemshape.xml 파일
 
    android:shape="rectangle" >
   
            android:width="2dip"
        android:color="#00FF00" />
   
            android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="7dp" />

16.화면 테 두 리 는 타원형 이 고 모서리 가 원호 형 이 며 직각 이 아니다.
먼저 레이아웃 파일 에서:외부 레이아웃 을 정의 하고 설정:
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    
android:background="@color/black"
    android:orientation="vertical" >
            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

    android:shape="rectangle" >
   
            android:width="2dip"
        android:color="#FF99CC" />
            android:angle="90"
        android:endColor="#99CCFF"
        android:startColor="#99CCFF" />        
   

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.홈 키 사용
   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. 데스크 톱 에 사용 할 아이콘 두 개 보이 기
주 프로필 에서아래 가 필요 합 니 다.대응 하 는 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 가 필요 합 니 다.이 아이콘 을 추가 하 십시오.

               
               
설정
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()방법 으로 되 돌 릴 때 효과 가 없습니다.

좋은 웹페이지 즐겨찾기