我有一个很大的.png,我想在启动画面中显示它,但图像没有显示。 xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.infaplic.lpi.activities.SplashActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView2"/>
活动的代码:
public class SplashActivity extends Activity {
ImageView imagen;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
imagen=(ImageView)findViewById(R.id.imageView2);
imagen.setImageDrawable(getResources().getDrawable(R.drawable.pantalla_arranque));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent mainIntent = new Intent(SplashActivity.this, NextActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, 1000);
}
}
这样,图像不显示。我已经尝试使用android:src:在xml中,但它不起作用。
图像非常大。在将其放入ImageView之前,是否需要调整大小?如果没有,为什么图像没有显示?
谢谢。
编辑:PNG是1080x1920
答案 0 :(得分:11)
既然你写的图像非常大,我猜它太大了。我在其中一个应用程序中有一个错误,我生成的图像大于2048像素。有些设备不支持如此大的图像,我猜你会遇到类似的问题。
如果这是一些背景图像缩小图像尺寸,背景图像并不重要,屏幕上的每个像素都必须拥有图像像素。
答案 1 :(得分:11)
在我的情况下,我使用的文件名如“go-back-filename.png”。而xml文件就像
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/go-back-icon"/>
在我将文件名更改为“go_back_icon”后,它运行正常。 希望这有助于某人。
答案 2 :(得分:4)
在此下方添加。请阅读选项,将图像范围缩放到ImageView中此view.ImageView.ScaleType的边界
imagen.setImageResource(R.drawable.pantalla_arranque);
然后
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView2"
android:adjustViewBounds="true"
android:scaleType="fitXY"/>
android:adjustViewBounds
:如果您希望ImageView调整其边界以保持其drawable的宽高比,请将此设置为true。
必须是boolean
值,&#34; true&#34;或&#34; false&#34;。
请检查演示ImageView scaleType Samples。我希望它可以帮到你
答案 3 :(得分:1)
将您的ImageView
更改为:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView2"
android:scaleType="fitXY"
android:adjustViewBounds="false"/>
如果无效,请尝试在manifest
(Activity)
android:hardwareAccelerated="false"
我一直在寻找答案,但我认为最好自己尝试一下......我创建了一个示例项目,我使用了ImageView
1080x1920我正在测试,因为我找到了我已经把它显示了3000毫秒......如果不重新缩放它,将会显示1000毫秒。
顺便提一句getDrawable()
,我建议您使用:
imagen.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.imagenprueva));
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView2"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:background="@drawable/imagen"
/>
</RelativeLayout>
以下是完整的源代码,希望它有助于Source code
答案 4 :(得分:0)
在您的.xml文件中
添加
xmlns:app="http://schemas.android.com/apk/res-auto"
然后在ImageView中添加以下代码行:
app:srcCompat="@drawable/books"
不是
tools:srcCompat="@drawable/books"