android学习记录(五)

139 阅读1分钟

「这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战

调用摄像头拍照并显示图片

添加一个Activity
CameraActivity
package com.example.uicomponenttest;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class CameraActivity extends AppCompatActivity {
    private final  int CAMERA_RESULT=10;
    private Button button_camera;
    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);
        initView();
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        Log.d("getImage","YES");
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode){
            case CAMERA_RESULT:
                if(resultCode==RESULT_OK){
                    Bitmap bitmap =(Bitmap)data.getExtras().get("data");
                    imageView.setImageBitmap(bitmap);
                }
                break;
        }
    }
    protected  void initView(){
        imageView=findViewById(R.id.camera);
        button_camera=findViewById(R.id.use_camera);
        button_camera.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                Log.d("getImage","YES");
                startActivityForResult(intent,CAMERA_RESULT);
            }
        });

    }

}
activity_camera.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".CameraActivity"
    android:orientation="vertical">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/use_camera"
        android:text="启用摄像头"/>
    <ImageView
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:id="@+id/camera"/>
</LinearLayout>

最好先在Oncreate 中写initView() 否则代码量一大很容易忘.(先把逻辑搭好,再去实现细节)

实现一个注册界面并且将输入的信息输出.

RegisterActivity
package com.example.uicomponenttest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.material.chip.ChipGroup;

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
    private Button submit,cancel;
    private EditText name,age,phone,address;
    private  RadioGroup radioGroup;
    private CheckBox pe,music,literature,travel;
    private TextView tot_text;
    String gender;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        initView();
    }

    private void initView() {
        submit=findViewById(R.id.submit);
        cancel=findViewById(R.id.cancel);
        submit.setOnClickListener(this);
        cancel.setOnClickListener(this);
        name=findViewById(R.id.et_name);
        age=findViewById(R.id.et_age);
        radioGroup=findViewById(R.id.rg_gender);
        phone=findViewById(R.id.et_phone);
        address=findViewById(R.id.et_address);
        pe=findViewById(R.id.pe);
        music=findViewById(R.id.music);
        literature=findViewById(R.id.literature);
        travel=findViewById(R.id.travel);
        tot_text=findViewById(R.id.tot_text);
        CompoundButton.OnCheckedChangeListener checkedChangeListener=new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                switch (buttonView.getId()){
                    case R.id.pe:
                        if(isChecked){
                            Toast.makeText(RegisterActivity.this,"体育",Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.music:
                        if(isChecked){
                            Toast.makeText(RegisterActivity.this,"音乐",Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.literature:
                        if(isChecked){
                            Toast.makeText(RegisterActivity.this,"文学",Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.travel:
                        if(isChecked){
                            Toast.makeText(RegisterActivity.this,"旅行",Toast.LENGTH_SHORT).show();
                        }
                        break;
                }
            }
        };
        pe.setOnCheckedChangeListener(checkedChangeListener);
        music.setOnCheckedChangeListener(checkedChangeListener);
        literature.setOnCheckedChangeListener(checkedChangeListener);
        music.setOnCheckedChangeListener(checkedChangeListener);
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton radioButton =findViewById(checkedId);
                gender=radioButton.getText().toString();
            }
        });
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.submit:
                StringBuilder hobby=new StringBuilder();
                if(pe.isChecked()){
                    hobby.append(pe.getText().toString().trim()+" ");
                }
                if(music.isChecked()){
                    hobby.append(music.getText().toString().trim()+" ");
                }
                if(literature.isChecked()){
                    hobby.append(literature.getText().toString().trim()+" ");
                }
                if(travel.isChecked()){
                    hobby.append(travel.getText().toString().trim()+" ");
                }
                StringBuilder information=new StringBuilder();
                information.append(name.getText().toString().trim()+"\n");
                information.append(age.getText().toString().trim()+"\n");
                information.append(phone.getText().toString().trim()+"\n");
                information.append(address.getText().toString().trim()+"\n");
                tot_text.setText(information+gender+"\n"+hobby);
                break;
            case R.id.cancel:
                break;

        }

    }
}
activity_register.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".RegisterActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/first_line"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/ra_name"

            android:text="姓名: "
            />
        <EditText
            android:layout_width="0dp"
            android:layout_weight="0.3"
            android:layout_height="wrap_content"
            android:id="@+id/et_name"
            android:maxLines="1"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="年龄"/>
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.3"
            android:maxLines="1"
            android:id="@+id/et_age"
            android:inputType="number"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="电话:"
            />
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.3"
            android:id="@+id/et_phone"
            android:maxLines="1"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="住址"

            />
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:id="@+id/et_address"
            android:layout_weight="0.3"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal"
        android:gravity="center"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="性别: "
            />
        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/rg_gender"
            android:orientation="horizontal">
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rg_gender_male"
                android:text="男"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rg_gender_female"
                android:text="女"/>
        </RadioGroup>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="爱好"/>
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="体育"
            android:id="@+id/pe"/>
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="音乐"
            android:id="@+id/music"/>
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文学"
            android:id="@+id/literature"/>
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="旅行"
            android:id="@+id/travel"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_gravity="center_horizontal"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"
            android:layout_marginRight="10dp"
            android:id="@+id/submit"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/cancel"
            android:text="取消"/>
    </LinearLayout>
    <TextView
        android:layout_width="match_parent"
        android:id="@+id/tot_text"
        android:layout_height="match_parent"/>
</LinearLayout>