
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="gallery"
android:text="获取图库图片" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="camera"
android:text="拍照获取图片" />
<ImageView
android:id="@+id/iv_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
//------------------我的MainActivity --------------也很简单--------------------------
package tackpicture.bwie.com.tackpicture
import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.os.Environment
import android.provider.MediaStore
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.Toast
import java.io.File
public class MainActivity extends AppCompatActivity {
private ImageView iv_image
private static final int PHOTO_REQUEST_CAREMA = 1// 拍照
private static final int PHOTO_REQUEST_GALLERY = 2// 从相册中选择
private static final int PHOTO_REQUEST_CUT = 3// 结果
/* 头像名称 */
private static final String PHOTO_FILE_NAME = "temp_photo.jpg"
private File tempFile
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//找到控件
iv_image = (ImageView) findViewById(R.id.iv_image)
}
//图库
public void camera(View view) {
// 激活系统图库,选择一张图片
Intent intent = new Intent(Intent.ACTION_PICK)
intent.setType("image/*")
// 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_GALLERY
startActivityForResult(intent, PHOTO_REQUEST_GALLERY)
}
//相机
public void gallery(View view) {
// 激活相机
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE")
// 判断存储卡是否可以用,可用进行存储
if (hasSdcard()) {
tempFile = new File(Environment.getExternalStorageDirectory(), PHOTO_FILE_NAME)
// 从文件中创建uri
Uri uri = Uri.fromFile(tempFile)
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri)
}
// 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CAREMA
startActivityForResult(intent, PHOTO_REQUEST_CAREMA)
}
/*
* 剪切图片
*/
private void crop(Uri uri) {
// 裁剪图片意图
Intent intent = new Intent("com.android.camera.action.CROP")
intent.setDataAndType(uri, "image/*")
intent.putExtra("crop", "true")
// 裁剪框的比例,1:1
intent.putExtra("aspectX", 1)
intent.putExtra("aspectY", 1)
// 裁剪后输出图片的尺寸大小
intent.putExtra("outputX", 250)
intent.putExtra("outputY", 250)
intent.putExtra("outputFormat", "JPEG")// 图片格式
intent.putExtra("noFaceDetection", true)// 取消人脸识别
intent.putExtra("return-data", true)
// 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT
startActivityForResult(intent, PHOTO_REQUEST_CUT)
}
/*
* 判断sdcard是否被挂载
*/
private boolean hasSdcard() {
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
return true
} else {
return false
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PHOTO_REQUEST_GALLERY) {
// 从相册返回的数据
if (data != null) {
// 得到图片的全路径
Uri uri = data.getData()
crop(uri)
}
} else if (requestCode == PHOTO_REQUEST_CAREMA) {
// 从相机返回的数据
if (hasSdcard()) {
crop(Uri.fromFile(tempFile))
} else {
Toast.makeText(MainActivity.this, "未找到存储卡,无法存储照片!", 0).show()
}
} else if (requestCode == PHOTO_REQUEST_CUT) {
// 从剪切图片返回的数据
if (data != null) {
Bitmap bitmap = data.getParcelableExtra("data")
this.iv_image.setImageBitmap(bitmap)
}
try {
// 将临时文件删除
tempFile.delete()
} catch (Exception e) {
e.printStackTrace()
}
}
super.onActivityResult(requestCode, resultCode, data)
}
}
安卓系统手机不能下载iPhone的自带相机,其他原因如下:1、安卓系统通常指的是苹果产品以外的产品,下载安装的应用软件格式是.apk格式的。而iPhone下载的应用软件都是.ipa格式的,两者之间不匹配。
2、安卓机的主机组成、芯片架构、系统程序和iOS设备的主机组成、芯片架构、系统程序不同,两者之间没有关联性,无法通用。
3、苹果系统是独立的ios系统,和安卓系统不一样。同一个软件会分ios系统和安卓系统。说明不相匹配。
360手机卫士:底部安全防护>隐私行为监控>软件隐私权限管理>要禁止的应用>取消勾选“拍照/摄像”
LBE:权限管理(主界面往下拖动)>拍照和录像>取消勾选要禁止的应用。
小米MIUI:安全中心>授权管理>应用权限管理>隐私相关>取消勾选“拍照和录像”
魅族Flyme“设置>应用控制(四个小方格图标)>权限>要禁止的应用>取消勾选“摄像头(拍照/录像)”
总结:其他的第三方安全软件的设置方法也大同小异,可以参考一些以上四种。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)