首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ODK采集图像质量

ODK采集图像质量
EN

Stack Overflow用户
提问于 2015-01-11 22:02:01
回答 1查看 503关注 0票数 0

由于现在的智能手机配备了1600万像素的摄像头,图片尺寸也将达到5MB。将它们上传到移动数据上会花费一些时间和更多的数据,导致App的性能较差。

ODK collect有没有办法将图像问题调整到指定的尺寸和质量。

这将有助于提高App的性能。

EN

回答 1

Stack Overflow用户

发布于 2015-01-17 15:04:38

看看ImageWidget.java

ODK Collect会根据屏幕大小调整大小,但您可以更改

代码语言:javascript
复制
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();

到一个固定的最大分辨率。

代码语言:javascript
复制
    // Only add the imageView if the user has taken a picture
    if (mBinaryName != null) {
        mImageView = new ImageView(getContext());
        mImageView.setId(QuestionWidget.newUniqueId());
        Display display =
            ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE))
                    .getDefaultDisplay();
        int screenWidth = display.getWidth();
        int screenHeight = display.getHeight();

        File f = new File(mInstanceFolder + File.separator + mBinaryName);

        if (f.exists()) {
            Bitmap bmp = FileUtils.getBitmapScaledToDisplay(f, screenHeight, screenWidth);
            if (bmp == null) {
                mErrorTextView.setVisibility(View.VISIBLE);
            }
            mImageView.setImageBitmap(bmp);
        } else {
            mImageView.setImageBitmap(null);
        }

        mImageView.setPadding(10, 10, 10, 10);
        mImageView.setAdjustViewBounds(true);
        mImageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    Collect.getInstance().getActivityLogger().logInstanceAction(this, "viewButton", 
                                    "click", mPrompt.getIndex());
                Intent i = new Intent("android.intent.action.VIEW");
                Uri uri = MediaUtils.getImageUriFromMediaProvider(mInstanceFolder + File.separator + mBinaryName);
                    if ( uri != null ) {
                    Log.i(t,"setting view path to: " + uri);
                    i.setDataAndType(uri, "image/*");
                    try {
                        getContext().startActivity(i);
                    } catch (ActivityNotFoundException e) {
                        Toast.makeText(getContext(),
                            getContext().getString(R.string.activity_not_found, "view image"),
                            Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27887925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档