我尝试在井(希望)定义的视图(XML)
上将ImageView显示到我的应用程序中<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activityShowLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#73C310"
android:orientation="vertical"
tools:context=".ShowActivity" >
<ImageView
android:id="@+id/mainImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/moodButton"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_margin="12dp"
android:background="#000"
android:src="@drawable/gs_04_pic" />
<!-- ... -->
之后在我的活动上的onCreate方法
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
/* ... blabla bla ... */
ImageView imageView = (ImageView) findViewById(R.id.mainImage);
Bitmap bitmap = BitmapFactory.decodeByteArray(cream.getMedia(), 0, cream.getMedia().length);
Drawable draw = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(draw);
imageView.invalidate();
}
使用cream.getMedia()返回一个有效的byte [](来自数据库) 我可以记录给我:
07-18 17:41:16.812:I / app(9883):byte []是:[B @ 414af0b0
但最后,imageView是黑色的(上面没有图像) 如果我不运行onCreate代码,它将显示XML中的资源集(在XML中设置的黑色背景上)
有什么问题?
答案 0 :(得分:3)
我遇到了这个问题,在我的情况下,问题来自于:
中的配置bluid.gradle
shrinkResources true
它删除了我的文件,因为我没有对我的资源进行静态引用。 (在我的情况下的图像)
所以我发现了这篇文章&#34;保持资源&#34;在此链接中Resource Shrinking
在resumen中它说:你应该在这条路径中创建一个文件&#34; /res/raw/keep.xml"
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@layout/l_used*_c,@layout/l_used_a,@layout/l_used_b*"/>
答案 1 :(得分:0)
可能是因为您试图将较大的位图加载到imageview中,请在设置之前尝试将其缩小。