我的res/drawable文件夹中有一些图像.让我们说吧img1.png,
img2.png和img3.png.我正在用Java创建这些图像ID的整数数组
int[] imgIds = {R.drawable.img1, R.drawable.img2, R.drawable.img3};
Run Code Online (Sandbox Code Playgroud)
相反,是否可以在其中一个res/values文件(例如strings.xml)中创建一个整数数组
<integer-array name="img_id_arr">
<item>@drawable/img1</item>
<item>@drawable/img2</item>
<item>@drawable/img3</item>
</integer-array>
Run Code Online (Sandbox Code Playgroud)
然后通过Java访问它getResources().getIntArray(R.array.img_id_arr)?
我在Google上搜索过,但找不到任何相关结果.
我还检查了官方Android文档,这个页面(所有可用资源)都是我能找到的.我在这个页面上找到的相关链接(到res/values/目录)是:
这些页面不会告诉您有关该res/values/public.xml文件的任何信息.
以下是我为此类文件找到的示例.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<public type="attr" name="commentTextColor" id="0xAA010007" />
<public type="drawable" name="add_icon_bl" id="0xAA020000" />
<public type="layout" name="act_date_picker" id="0xAA030001" />
<public type="anim" name="activity_slide_from_bottom" id="0xAA040000" />
<public type="xml" name="pref_menu" id="0xAA050000" />
<public type="raw" name="alert_bell_animation_bl" id="0xAA060000" />
<public type="array" name="taskRepeat" id="0xAA070000" />
<public type="color" name="theme_main_color_bl" id="0xAA080000" />
<public type="string" name="no_internet" id="0xAA0a0001" />
<public type="id" name="page1" id="0xAA0d0015" />
</resources>
Run Code Online (Sandbox Code Playgroud)
从type属性中可以看出,它包含了通常放在 …
在J2ME中,我这样做:
getClass().getResourceAsStream("/raw_resources.dat");
但是在android中,我总是在这上面为空,为什么?
在某个Android项目中,您需要在目录中导入一些drawable - 无论是工具栏图标,图像,UI功能res/drawable.大多数你有规模最常见预选赛(图像时代drawable-hdpi,drawable-mdpi,drawable-xdpi,drawable-xxdpi,...).
因此,我们需要为每个drawable执行三个,四个甚至五个文件复制/粘贴:
external_dir/drawable-mdpi/file.png -> my_package/drawable-mdpi/file.png
external_dir/drawable-hdpi/file.png -> my_package/drawable-hdpi/file.png
external_dir/drawable-xdpi/file.png -> my_package/drawable-xdpi/file.png
external_dir/drawable-xxdpi/file.png -> my_package/drawable-xxdpi/file.png
Run Code Online (Sandbox Code Playgroud)
如果您必须导入多个图片,这很烦人.是否有一种简单,快速的方法可以file.png在相应的包文件夹中传输这四个右侧实例?在IDE中实现了一些功能?一些简单的解决方法?
我的工作流程到现在为止:
external_dir,搜索file.png,获取单个列表中的四个实例,拖放到Android Studio,然后为每个图片右键单击导航栏Copy,并Paste在相应的包目录中.不是更好!有什么建议?
编辑 - 我当然不是真的要求"建议" - 我想知道是否有办法将移动次数减少到一个(或者这样).
我正在研究一些可重用的Android代码,我想将其分发给其他开发人员,以便在他们自己的应用程序中使用.代码有一些资源依赖(layouts,xml和png drawables),我希望能够在单个包(Jar文件)中包含和引用.
这是可能的,如果是这样,最好的方法是什么?
我有这样的数组.
int image[] = {R.drawable.d002_p001,R.drawable.d002_p002,R.drawable.d002_p003,
R.drawable.d002_p004,R.drawable.d002_p005,R.drawable.d002_p006};
Run Code Online (Sandbox Code Playgroud)
现在我有6张图片,所以我静静地给出了这个名字.
如果我有50个图像,我不能给出数组中的每个文件名,所以它需要是动态的,我怎么能实现这一点.
基于XML属性部分,我在下面指定了以下内容dimens.xml:
<dimen name="match_parent">-1dp</dimen>
<dimen name="main_left_menu_user_account_width">@dimen/match_parent</dimen>
<dimen name="main_left_menu_user_account_height">@dimen/match_parent</dimen>
Run Code Online (Sandbox Code Playgroud)
然后我在布局中使用这两个维度:
<ImageView
android:id="@+id/userAccountImage"
android:background="@drawable/user_account"
android:layout_width="@dimen/main_left_menu_user_account_width"
android:layout_height="@dimen/main_left_menu_user_account_height" />
Run Code Online (Sandbox Code Playgroud)
然后,当我预览到时Graphical Layout,它会抱怨:
您必须提供layout_width属性.
您必须提供layout_height属性.
实际上我可以定义一个等于match_parent的值dimens.xml吗?
更新:
我也试过了,但预览仍然抱怨:
<dimen name="main_left_menu_user_account_width">-1dp</dimen>
<dimen name="main_left_menu_user_account_height">-1dp</dimen>
Run Code Online (Sandbox Code Playgroud)
我成功使用wrap_content(Graphical Layout根本没有抱怨):
<dimen name="wrap_content">-2dp</dimen>
<dimen name="main_right_menu_width">@dimen/wrap_content</dimen>
<dimen name="main_right_menu_height">@dimen/wrap_content</dimen>
Run Code Online (Sandbox Code Playgroud) 我正在尝试新的Android Studio.我使用build gradle选项从eclipse导出了一个项目.然后我在Android Studio中导入它.gen下的R.java文件在其上有一个小红圈.在我的源文件中,无论我在何处引用资源,我都会"无法解析符号R",例如"R.layout.account_list"等.
我之前从未使用过Intellij.非常感谢任何帮助,因为Android Studio的答案显然不多.谢谢!
我想知道我是否可以放入XML /res/values/strings.xml?我问这个是因为我正在为我的应用程序检查XML数据文件,如果它还不存在,那么它将从默认内容创建它,该内容将作为字符串资源包含.
当使用GUI编辑字符串时,Eclipse会尝试将小于和大于标记的标记更改为相应的HTML实体.日食是否正确?因为我认为它也会作为HTML实体写入我的文件中.我可以使用getText()而不是getString()将实体转换回标签吗?
这是给出错误的java文件
package com.example.daksh.timetable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button mon_but,tue_but,wed_but,thur_but,fri_but;
mon_but = (Button)findViewById(R.id.mon);
tue_but = (Button)findViewById(R.id.tue);
wed_but = (Button)findViewById(R.id.wed);
thur_but = (Button)findViewById(R.id.thur);
fri_but = (Button)findViewById(R.id.fri);
final ImageView main_Image = (ImageView) findViewById(R.id.day);
final int[] dayarray = {R.drawable.monday,R.drawable.tuesday,R.drawable.wednesday,R.drawable.thursday, R.drawable.friday};
mon_but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
main_Image.setImageResource(dayarray[0]);
}
});
tue_but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
main_Image.setImageResource(dayarray[1]);
} …Run Code Online (Sandbox Code Playgroud)