小编Jen*_*jdn的帖子

ImageAnalyzer ML Kit 边界框错误排列

我有一个简单的布局:

 <RelativeLayout
    android:id="@+id/myP"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <androidx.camera.view.PreviewView
        android:id="@+id/mPreviewView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <com.example.dochjavatestimplementation.pkgActivity.ExtendedImageView
        android:id="@+id/imageViewOmgShowIt"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="visible" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

previewView 用于显示相机,ExtendedImageView 用于显示显示找到的对象 rect。

我的图像分析器:

imageAnalysis = new ImageAnalysis.Builder()
 .setTargetResolution(new Size(mPreviewView.getWidth(),mPreviewView.getHeight()))
 .build();

imageAnalysis.setAnalyzer(executor, new PaperImageAnalyser());
Run Code Online (Sandbox Code Playgroud)

纸图像分析器:

public class PaperImageAnalyser implements ImageAnalysis.Analyzer {


ObjectDetectorOptions options = new ObjectDetectorOptions.Builder()
    .setDetectorMode(ObjectDetectorOptions.STREAM_MODE)
    .enableClassification()  // Optional
    .build();

ObjectDetector objectDetector = ObjectDetection.getClient(options);



@Override
public void analyze(@NonNull ImageProxy imageProxy) {
@SuppressLint("UnsafeExperimentalUsageError") Image mediaImage = imageProxy.getImage();

if (mediaImage != null) {
    InputImage image =InputImage.fromMediaImage(mediaImage, imageProxy.getImageInfo().getRotationDegrees());

    objectDetector.process(image)
        .addOnSuccessListener(
            new OnSuccessListener<List<DetectedObject>>() {
                @Override …
Run Code Online (Sandbox Code Playgroud)

android image-processing android-imageview android-camerax google-mlkit

5
推荐指数
1
解决办法
74
查看次数

ActivityResultLauncher 传递自定义请求代码

我有一个简单的 ActivityResultLauncher 实现,我可以在其中从图库中选择图像:

ActivityResultLauncher<Intent> actResLauncher;
actResLauncher = registerForActivityResult(   new ActivityResultContracts.StartActivityForResult(),this);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
actResLauncher.launch(intent);
Run Code Online (Sandbox Code Playgroud)

结果:

@Override
public void onActivityResult(ActivityResult  result) {
    if(result.getResultCode()== Activity.RESULT_OK){

    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码的问题是我依赖于预定义的结果代码,例如 Activity.RESULT_OK 或 Activity.RESULT_CANCELED。有没有办法在启动意图时传递自定义请求代码?

android android-intent onactivityresult startactivityforresult

3
推荐指数
1
解决办法
1万
查看次数