apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.changingimageviewwidth"
minSdkVersion 26
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation "org.apache.sanselan:sanselan:0.97-incubator"
}
<?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:background="#ffffff"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
android:onClick="analyzePhoto"/>
</LinearLayout>
mainactivity.java:
package com.example.changingimageviewwidth;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import org.apache.sanselan.ImageInfo;
import org.apache.sanselan.Sanselan;
import java.io.File;
public class MainActivity extends AppCompatActivity {
// Request code used when reading in a file
private Integer READ_IN_FILE = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void analyzePhoto(View v) {
// Specify that only photos are allowed as inputs (.jpg, .png).
Intent photoInputSpecs = new Intent(Intent.ACTION_GET_CONTENT);
photoInputSpecs.setType("image/*");
Intent photoInputHandler = Intent.createChooser(photoInputSpecs, "Choose a file");
startActivityForResult(photoInputHandler, 0);
}
// Processes the results of Activities.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
// Processes the photos that the user selected
if (requestCode == READ_IN_FILE) {
System.out.println("Let us process the photos that the user selected.");
// Retrieve the photo's location
Uri photoUri = data.getData();
String photoPath = photoUri.getPath();
File photoFile = new File(photoPath);
ImageInfo image1Info = Sanselan.getImageInfo(photoFile);
int image1HorizontalDPI = image1Info.getPhysicalWidthDpi();
int image1VerticalDPI = image1Info.getPhysicalHeightDpi();
System.out.println("[image1HorizontalDPI] = " + image1HorizontalDPI);
System.out.println("[image1VerticalDPI] = " + image1VerticalDPI);
}
}
catch (Exception ex) {
System.out.println("onActivityResult error: " + ex.toString());
}
}
}
您可以使用下面的类从URI获取实际路径
https://raw.githubusercontent.com/abcoderz/externalfiles/main/realpathfromuri.java
使用上面的链接下载RealPathFromURI,并像下面这样更改代码
我正在尝试获取内容URI的文件路径。URL如下所示:content://com.android.providers.downloads.documents/document/31 游标对象不是null,但cursor.getString(column_index)返回null。 列索引始终为0。 编辑:内容URI是从文件管理器返回的,因此它应该表示实际的文件。
我试图通过我的图像与意图在Xamarin Android与C#。在第一个活动中,我使用将图像路径解码为位图文件。我还用然后,在单击按钮时传递URI路径,该按钮将使用将图片引用到下一个活动。在下一个活动中,我想从第一个活动中获得传递路径值。 但是,我得到一个带有空异常错误的错误。路径返回null,程序崩溃。请帮帮我!几个小时后我觉得卡住了。有人帮忙吗?以下是我的完整代码: 第一个活动-我的onAct
我想从图库中选择一个图像,然后使用它将图像加载到ImageView项中。 但是图像没有以正确的方式旋转,所以我应该使用ExifInterface类,并且exif构造函数希望文件的路径是字符串,而不是URI。 为了将URI转换为字符串,我编写了以下方法: 问题从这里开始... 结果变量总是返回null。我尝试了stackoverflow中的许多解决方案,如下所示: 我试图用null值查询投影。仍然返
我正在尝试使用隐式意图操作_SEND将其他应用程序中的图像共享到我的应用程序中。 当从chrome浏览器共享搜索图像时,应用程序接收到一个内容URI,如下所示: 如何从这种类型的内容URI获取文件路径?所有其他应用,比如Facebook、谷歌都在这么做。我使用FileChooser获取其他类型内容URI的文件路径(例如,从Gallery)。 试着到处寻找,但没有太多帮助。有人能建议如何使用这些内容
目前,我正在java中建立一个Firebase云火力恢复,使用IntelliJ作为SDK。在Firebase留档中,据说需要服务帐户密钥,这是一个json文件。我使用FileInputStream方法获得这个json文件,当我得到执行程序的文件时,我没有任何问题,但是当我将其导出为JAR库时,使用该JAR的项目没有找到服务帐户密钥,然后它无法与我的Firebase连接。 现在,我可以连接到Fire
我有一个应用程序,可以用相机拍摄视频。我可以获取视频的文件路径,但我需要它作为Uri。 我得到的文件路径: 我需要的是这样的: 这是我的密码。 我需要一个Uri从字符串变量。