Android 循环时从错误的资源文件夹中提取可提取内容
把我的头发拔出来。因此,我正在使用一个应用程序,该应用程序具有多种类型的绘图功能,我将它们放在如下结构中:Android 循环时从错误的资源文件夹中提取可提取内容,android,rotation,android-activity,android-resources,android-drawable,Android,Rotation,Android Activity,Android Resources,Android Drawable,把我的头发拔出来。因此,我正在使用一个应用程序,该应用程序具有多种类型的绘图功能,我将它们放在如下结构中: res/ //Portrait resources drawable-mdpi/ drawable-hdpi/ drawable-xhdpi/ //Landscape resources drawable-land-mdpi/ drawable-land-hdpi/ drawable-land-xhdpi/ 编辑我甚至尝试
res/
//Portrait resources
drawable-mdpi/
drawable-hdpi/
drawable-xhdpi/
//Landscape resources
drawable-land-mdpi/
drawable-land-hdpi/
drawable-land-xhdpi/
编辑我甚至尝试将特定于肖像的可绘制对象放在可绘制端口mdpi
下,等等,结果都是一样的
我有一个自定义的视图
,我正在使用它在运行时拉入可绘图项。下面是一个简化的示例,但这就是我遇到的问题:
public class CustomView extends FrameLayout {
private ImageView mBackgroundView;
public CustomView (Context context) {
super(context);
initialize();
}
public CustomView (Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
}
public CustomView (Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialize();
}
private void initialize () {
mBackgroundView = new ImageView(getContext());
mBackgroundView.setImageResource(R.drawable.my_resource);
addView(mBackgroundView, wrapContent());
}
private LayoutParams wrapContent () {
return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
}
}
我希望当我转到横向时(首先让我澄清一下,我没有处理此活动的清单中的配置更改),并且此视图被重新创建,mBackgroundView
应该获得可绘制土地xhdpi
。相反,当我向后旋转时,我应该在可绘制的xhdpi
中获得可绘制的
现在这里是它变得奇怪的地方。我可以确认所有可绘制的都在那里并被检测到,因为如果我在横向中启动应用程序,我会得到正确的横向可绘制的。然而,在旋转时,风景画仍然保留,我没有得到肖像画。相反地,如果我在肖像中启动,我就只能使用肖像画了。
当我以编程方式获取资源时,是否需要处理一些特殊情况来“重置”资源或其他东西?因此,我已经找出了问题所在,老实说,我不确定这是我的误解还是安卓系统中的错误。我不想将此添加为问题的一部分(回头看,我应该有),但我的可绘制层列表是一个可绘制的层列表,其中两个图像堆叠在一起(一个阴影,一个图像在阴影上方):
什么版本的Android?您是否启用了屏幕自动旋转功能?@cdonner是的,屏幕会旋转,我会在布局栏
中定义布局。它只是一个不会改变的可拉丝。另外,这是在Android 4.2上(Nexus 4和Galaxy Nexus都显示了这个问题)。我刚刚发现我也有同样的问题,我在所有活动中都使用了这个样式,带有背景色和位图的形状,但它似乎取决于它开始的位置,它不会适应旋转。可以用ImageView显示xml吗?这可以用于样式主题吗?
<layer-list xmlns:android="http://schemas.android.com/apk/res/android>
<item>
<bitmap android:src="@drawable/shadow"/>
</item>
<item>
<bitmap android:src="@drawable/image" android:gravity="top|center_horizontal"/>
</item>
</layer-list>