我试图让它成为用户可以在我的应用程序中选择一个gif并通过短信发送它。从我拥有的,你可以点击一个GIF,然后该应用程序允许您选择一个消息传递平台并启动一条新消息,但给出错误"无法附加。文件不受支持。"并且不会将gif附加到短信中。我该怎么办呢?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View imageView, int position, long id) {
Toast.makeText(getApplicationContext(), "Pick a messenger!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Intent.ACTION_SEND);
File f = new File("/res/drawable/broke.gif");
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
intent.setType("image/gif");
startActivity(Intent.createChooser(intent, "Send"));
}
});
}
broke.gif是我在测试程序时尝试发送的gif。
答案 0 :(得分:0)
你有两个问题。
首先,正如Gabe所说,比你预期的更少的应用程序将支持GIF。
但是,你有一个更大的问题:
档案f =新档案(“/ res / drawable / broke.gif”);
Android设备上没有/res/drawable/broke.gif
。
据推测,你的意思是“我的项目中名为broke.gif
的抽象”。资源是开发计算机上的文件。它们不是设备上的文件。它们是ZIP存档中的条目,即APK文件。
至少在理论上可以共享可绘制资源,例如使用my StreamProvider
。