我知道图像的绝对路径(比如说/sdcard/cats.jpg).这个文件的内容是否有任何方法?
实际上在我的代码中我下载了一个图像并将其保存在特定位置.为了在ImageView中设置图像,我使用路径打开文件,获取字节并创建位图,然后在ImageView中设置位图.这是一个非常缓慢的过程,相反,如果我可以获得内容uri,那么我可以很容易地使用该方法 ImageView.setImageUri(uri)
我试图FileInputStream在用户从图片库中选择的图像上获取一个对象.这是由URI返回的androidandroid.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI
内容://媒体/外部/图像/媒体/ 3
当我尝试从这个对象构造一个java URI对象时,我得到一个IllegalArgumentException,其中包含URI中的异常描述Expected file scheme:content:// media/external/images/media/3而android URI将该方案显示为内容
从未找到原始问题的解决方案.但是如果你想要图片库中图像的字节流,这段代码就可以做到.
content://media/external/images/media/3
Run Code Online (Sandbox Code Playgroud) TextView textView1= (TextView) dialog.findViewById(R.id.textView1);
Run Code Online (Sandbox Code Playgroud)
我想创建这样的东西:
for (int i=0; i<100; i++) {
TextView textView= (TextView) dialog.findViewById(R.id.textView+i);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
莱斯利
我正在尝试从我的Android应用程序中的资源加载图像,但我不断收到"IllegalArgumentException:URI中的预期文件方案"错误.
我将'missing_album_art.png'文件放在我的项目中的drawable-hdpi,drawable-ldpi和drawable-mdpi文件夹中,并刷新Eclipse以便它显示它们在那里.
我用来创建Uri的那条线是:
Uri uri = Uri.parse("android.resource://android.aberplayer/R.drawable.missing_album_art");
Run Code Online (Sandbox Code Playgroud)
'android.aberplayer'是我的应用程序的主要包,也是包含我使用上述行的类的包.
我一直得到的错误是:
03-16 00:16:29.252: E/AndroidRuntime(25598): FATAL EXCEPTION: main
03-16 00:16:29.252: E/AndroidRuntime(25598): java.lang.IllegalArgumentException: Expected file scheme in URI: android.resource://src.android.aberplayer/R.drawable.missing_album_art
03-16 00:16:29.252: E/AndroidRuntime(25598): at java.io.File.checkURI(File.java:245)
03-16 00:16:29.252: E/AndroidRuntime(25598): at java.io.File.<init>(File.java:182)
03-16 00:16:29.252: E/AndroidRuntime(25598): at android.aberplayer.CurrentSongList.getCurrentAlbumArt(CurrentSongList.java:69)
Run Code Online (Sandbox Code Playgroud)
关于访问Android应用程序中的图像资源,我有什么不明白的地方吗?
在学习android / java的过程中,我想创建一个可以从原始文件夹播放特定声音的函数。
我试图将声音文件定义为字符串,以便可以重复使用该功能。但是,我坚持“无法解析符号”。
public class MainActivity extends ActionBarActivity {
MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
playSound("dogBark");
}
public void playSound(String soundFile) {
player = MediaPlayer.create(MainActivity.this,R.raw.soundFile); // Cannot resolve symbol 'soundFile'
player.setLooping(true);
player.start();
}
...
Run Code Online (Sandbox Code Playgroud)
我确信这是一个基本的缺乏知识的问题,但是任何帮助将不胜感激。
编辑:
如果我在函数中添加实际的声音文件,则上述函数可以很好地工作:
player = MediaPLayer.create(MainActivity.this,R.raw.dogBark);
Run Code Online (Sandbox Code Playgroud)
但是我想做的是在调用函数时定义声音文件:
playSound("dogBark");
Run Code Online (Sandbox Code Playgroud)