gpt4 book ai didi

android 将图像设置为联系人图标/墙纸

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:34 26 4
gpt4 key购买 nike

我已经编写了自己的 ImageViewer,现在我想像 Android 原生 ImageViewer 一样具有设置为功能。我现在有可能,因为 Facebook 拥有它。我附上了截图以使自己更清楚。 enter image description here

附言我想更详细地解释出了什么问题。在我选择菜单中的“联系人图标”后,会出现我的联系人列表。当我选择联系人时,应用程序强制关闭。如果我选择“主页/锁屏壁纸”,它会打开我手机的图库。这是我的代码 fragment :

                Bitmap icon = mBitmap;
Intent setAs = new Intent(Intent.ACTION_ATTACH_DATA);
setAs.setType("image/jpg");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
File f = new File(Environment.getExternalStorageDirectory() + File.separator + "/my_tmp_file.jpg");
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
setAs.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/my_tmp_file.jpg"));
startActivity(Intent.createChooser(setAs, "Set Image As"));

我还在我的 list 中添加了相应的权限,我可以将我的图像写入手机的 SD 卡。

LogCat Output

最佳答案

来自Google Gallery app source code :

// Called when "Set as" is clicked.
private static boolean onSetAsClicked(MenuInvoker onInvoke,
final Activity activity) {
onInvoke.run(new MenuCallback() {
public void run(Uri u, IImage image) {
if (u == null || image == null) {
return;
}

Intent intent = Util.createSetAsIntent(image);
activity.startActivity(Intent.createChooser(intent,
activity.getText(R.string.setImage)));
}
});
return true;
}

来自 Utils.java

// Returns an intent which is used for "set as" menu items.
public static Intent createSetAsIntent(IImage image) {
Uri u = image.fullSizeImageUri();
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.setDataAndType(u, image.getMimeType());
intent.putExtra("mimeType", image.getMimeType());
return intent;
}

关于android 将图像设置为联系人图标/墙纸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7284142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com