Android开发之一个简单实用的小程序

版权声明:转载请标明链接, https://blog.csdn.net/qq_43433255/article/details/88374889

这一个简单实用的小程序包含了短信,电话,定位等多种功能;
但其原理十分简单,界面还有待优化一下;让其更加美观!

界面设计为:
在这里插入图片描述

代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:background="@drawable/asdbf"
    tools:context=".MainActivity"
    tools:layout_editor_absoluteY="25dp">

    <TextView
        android:layout_width="111dp"
        android:layout_height="39dp"
        android:layout_marginTop="76dp"
        android:text="   欢迎使用!"
        android:textColor="@color/blueviolet"
        android:textSize="20dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.501"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/iv_pic"
        android:layout_width="204dp"
        android:layout_height="300dp"
        android:layout_marginBottom="17dp"
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/et_1" />

    <Button
        android:id="@+id/btn_2"
        android:layout_width="90dp"
        android:layout_height="46dp"
        android:layout_marginStart="40dp"
        android:layout_marginTop="8dp"
        android:background="@drawable/yuanbtn"
        android:text="拨打"
        android:textColor="@color/blueviolet"
        app:layout_constraintStart_toEndOf="@+id/et_1"
        app:layout_constraintTop_toTopOf="@+id/et_1" />

    <Button
        android:id="@+id/btn_1"
        android:layout_width="90dp"
        android:layout_height="42dp"
        android:layout_marginTop="8dp"
        android:background="@drawable/yuanbtn"
        android:text="联系人"
        android:textColor="@color/blueviolet"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="@+id/btn_2"
        app:layout_constraintTop_toBottomOf="@+id/btn_2"
        app:layout_constraintVertical_bias="0.085" />

    <Button
        android:id="@+id/btn_3"
        android:layout_width="87dp"
        android:layout_height="44dp"
        android:layout_marginTop="28dp"
        android:background="@drawable/yuanbtn"
        android:text="短信"
        android:textColor="@color/blueviolet"
        app:layout_constraintEnd_toEndOf="@+id/btn_1"
        app:layout_constraintTop_toBottomOf="@+id/btn_1" />


    <Button
        android:id="@+id/btn_4"
        android:layout_width="90dp"
        android:layout_height="44dp"
        android:layout_marginTop="44dp"
        android:background="@drawable/yuanbtn"
        android:text="相机"
        android:textColor="@color/blueviolet"
        app:layout_constraintEnd_toEndOf="@+id/btn_5"
        app:layout_constraintTop_toBottomOf="@+id/btn_5" />

    <Button
        android:id="@+id/btn_5"
        android:layout_width="85dp"
        android:layout_height="45dp"
        android:layout_marginTop="40dp"
        android:background="@drawable/yuanbtn"
        android:text="地图"
        android:textColor="@color/blueviolet"
        app:layout_constraintEnd_toEndOf="@+id/btn_3"
        app:layout_constraintTop_toBottomOf="@+id/btn_3" />

    <EditText
        android:id="@+id/et_1"
        android:layout_width="206dp"
        android:layout_height="44dp"
        android:layout_marginBottom="32dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="166dp"
        android:hint="     请输入电话号码"
        android:inputType="phone"
        android:textColorHint="@color/black"
        app:layout_constraintBottom_toTopOf="@+id/iv_pic"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


</android.support.constraint.ConstraintLayout>

main。activity的代码:

package com.example.wuluo.ways;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.ContactsContract;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText et_1;
    private String username, usernumber;
    // private EditText et_2;
    private ImageView iv_pic;
    private Button btn_1;//联系人
    private Button btn_2;//拨打
    private Button btn_3;//短信
    private Button btn_4;//相机
    private Button btn_5;//地图

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et_1 = (EditText) findViewById(R.id.et_1);

        iv_pic = findViewById(R.id.iv_pic);

         btn_1 = (Button) findViewById(R.id.btn_1);
         btn_2 = (Button) findViewById(R.id.btn_2);
         btn_3 = (Button) findViewById(R.id.btn_3);
         btn_4 = (Button) findViewById(R.id.btn_4);
        btn_5 = (Button) findViewById(R.id.btn_5);

        btn_1.setOnClickListener(this);
        btn_2.setOnClickListener(this);
        btn_3.setOnClickListener(this);
        btn_4.setOnClickListener(this);
        btn_5.setOnClickListener(this);
    }

    private static int REQUEST_CAMERA = 3;
    private static int PICK_CONTACT = 0;

    public void onClick(View view) {
        //Intent intent = new Intent();
        if (view.getId() == R.id.btn_1) {//联系人
            Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
            startActivityForResult(intent, PICK_CONTACT);
        } else if (view.getId() == R.id.btn_2) {//拨打电话
            Intent intent2 = new Intent();
            intent2.setAction(Intent.ACTION_CALL);
            intent2.addCategory(Intent.CATEGORY_DEFAULT);
            String num = et_1.getText().toString();
            intent2.setData(Uri.parse("tel:" + num));
            startActivity(intent2);

        } else if (view.getId() == R.id.btn_4) {//相机
            Intent intent1 = new Intent();
            intent1.setAction(MediaStore.ACTION_IMAGE_CAPTURE); //设置动作为调用照相机
            startActivityForResult(intent1, 3);//REQUEST_CAMERA请求码

        } else if (view.getId() == R.id.btn_3) {//短信
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_SENDTO);
            intent.setData(Uri.parse("smsto:10086"));
            intent.putExtra("sms_body","发个短信!");
            startActivity(intent);
        }
        else if (view.getId() == R.id.btn_5) {
            Intent intent5 = new Intent();
            Uri uri=Uri.parse("https://m.baidu.com/");
            Uri uri1=Uri.parse("geo:39.899533,116.036476");//打开百度地图
            intent5.setAction(Intent.ACTION_VIEW);
            intent5.setData(uri1);
            startActivity(intent5);
        }
    }

    /////在返回函数中
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Bundle bundle = data.getExtras();
        if (data == null)
          return;
        super.onActivityResult(requestCode, resultCode, data);
        //Bundle bundle = data.getExtras();// 从data中取出传递回来的数据
        switch (requestCode){
            case 0:
                if (resultCode == Activity.RESULT_OK) {
                ContentResolver reContentResolverol = getContentResolver();
                Uri contactData = data.getData();
                Cursor cursor = managedQuery(contactData, null, null, null, null);
                cursor.moveToFirst();
                username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
                Cursor phone = reContentResolverol.query(
                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
                while (phone.moveToNext()) {
                    usernumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                    et_1.setText(usernumber + " (" + username + ")");
                }

            }
            break;
            case 3:
                Bitmap b = (Bitmap) bundle.get("data");//// 将data中的信息流解析为Bitmap类型
                iv_pic.setImageBitmap(b);// 显示图片
                break;
            default:
                break;
        }


        /* else if (requestCode == REQUEST_CAMERA) {//请求码是获得照片
            Bitmap b = (Bitmap) bundle.get("data");//// 将data中的信息流解析为Bitmap类型
            iv_pic.setImageBitmap(b);// 显示图片
        }
*/
    }
}

需要添加权限:
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.wuluo.ways">

<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/asccx"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

最后的运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43433255/article/details/88374889