在我的应用程序中从Dropbox加载图像

时间:2014-01-04 12:35:23

标签: android

我正在开展一项活动,我要求用户从各种来源加载图像,并在不同活动的图像视图中显示所选图像。 我可以从相机和图库中显示图像,但是从Dropbox显示错误。 对于相机和图库,我甚至可以查询从

获得的uri

intent.getData()

在onactivityresult方法中并获取Filepath,因此甚至获取位图并调整其大小。 但同样不适用于Dropbox。请更新Dropbox使用的代码,以便所有选项开始工作。 感谢

1 个答案:

答案 0 :(得分:0)

对于Dropbox,您需要使用他们的Android Chooser从用户的Dropbox帐户中选择文件。您需要一个Dropbox API密钥。一旦你掌握了选择器库和API密钥,就应该很容易实现;

private Button mChooserButton;
private DbxChooser mChooser;

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

    mChooser = new DbxChooser(APP_KEY);

    mChooserButton = (Button) findViewById(R.id.chooser_button);
    mChooserButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            mChooser.forResultType(DbxChooser.ResultType.PREVIEW_LINK)
                    .launch(MainActivity.this, DBX_CHOOSER_REQUEST);
        }
    });
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == DBX_CHOOSER_REQUEST) {
        if (resultCode == Activity.RESULT_OK) {
            DbxChooser.Result result = new DbxChooser.Result(data);
            Log.d("main", "Link to selected file: " + result.getLink());

            // Handle the result
        } else {
            // Failed or was cancelled by the user.
        }
    } else if (requestCode == GALLERY) {
        // If your request was from the user gallery
        Log.d("main", "Link to selected file: " + data.getData());
    } else {
        super.onActivityResult(requestCode, resultCode, data);
    }
}