android studio学习知识点

1.android:onClick=“XXX”

一般监听OnClickListener事件,我们都是通过Button button = (Button)findViewById(…);
button.setOClickLisener…这样的方式来实现。
其实可以在xml中定义好方法名称,在Activity中实现该方法就可以了

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="onFlags"/>

2.通过数据线连接自己的手机调试运行项目

右上角点开绿三角会显示当前已经识别连接了的设备和虚拟机
点击troubleshoot device connections可以查看相关问题解决办法

  1. 连接手机后需要在开发者选项里面打开USB调试
  2. USB调试下面有USB安装,需要允许
  3. 然后AS会自动识别

    3.调用系统相册进行图像处理等
public void select(View view){
    Log.d("grabCut","选择图片");
    if(ContextCompat.checkSelfPermission(MainActivity.this,
            Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
        ActivityCompat.requestPermissions(MainActivity.this,new String[]{
                Manifest.permission.WRITE_EXTERNAL_STORAGE
        },1);
    }
    Intent intent = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(intent, IMAGE_REQUEST_CODE);
}
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        //在相册里面选择好相片之后调回到现在的这个activity中
        switch (requestCode) {
            case IMAGE_REQUEST_CODE:		//IMAGE_REQUEST_CODE 需要>-1,此处在前面声明为1
                if (resultCode == RESULT_OK) {//resultcode是setResult里面设置的code值
                    try {
                        Uri selectedImage = data.getData(); //获取系统返回的照片的Uri
                        String[] filePathColumn = {MediaStore.Images.Media.DATA};
                        Cursor cursor = getContentResolver().query(selectedImage,
                                filePathColumn, null, null, null);//从系统表中查询指定Uri对应的照片
                        cursor.moveToFirst();
                        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                        path = cursor.getString(columnIndex);  //获取照片路径
                        cursor.close();
                        bitmap = BitmapFactory.decodeFile(path);
                        imageView.setImageBitmap(bitmap);
                        todo();	//封装了的处理函数
                    } catch (Exception e) {
                        // TODO Auto-generatedcatch block
                        e.printStackTrace();
                    }
                }else{
                    Log.i("MainActivity","operation error");
                }
                super.onActivityResult(requestCode, resultCode, data);
        }
    }

3. getExternalStorageDirectory() is deprecated

Context.getExternalFilesDir代替,Android Q以后Environment.getExternalStorageDirectory()返回的路径可能无法直接访问,所以改成了Context.getExternalFilesDir

File appDir = new File(context.getExternalFilesDir(null),"xyz");

最后

这里也有不少有用的知识点

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章