我有一个名为iiti的DataBase,它有一个名为ImgName的String, ImgName的值,它是Drawable文件夹中Image的名称。 我想在imageView上发布该图片
TextView descText = (TextView) findViewById(R.id.descriptionText);
descText.setText(iiti.getneighborhood() + "\n");
ImageView iv = (ImageView) findViewById(R.id.imageView);
int resourceId = this.getResources().getIdentifier(iiti.getLatLat(),"drawable",this.getPackageName());
iv.setImageResource(resourceId);
上面的代码只是让ImageView成为白色空白图像,如果我尝试使用此代码
ImageView iv = (ImageView) findViewById(R.id.imageView);
iv.setImageResource(R.drawable.hii);
//hii is a png image in the drawable folder
这是我的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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".DetailActivity">
<TextView
android:id="@+id/cityText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="London"
android:textSize="30sp" />
<TextView
android:id="@+id/neighborhoodText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/cityText"
android:gravity="center"
android:text="West End"
android:textSize="20sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/cityText"
android:layout_marginTop="20dp"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp"
android:scaleType="fitStart"
android:src="@drawable/london_photo"/>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1" />
</LinearLayout>
</RelativeLayout>
应用程序崩溃这是Logcat:
03-27 15:21:10.984 9542-9542/com.example.android.mymaps E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.mymaps, PID: 9542
java.lang.RuntimeException: Canvas: trying to draw too large(110250000bytes) bitmap.
at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260)
at android.graphics.Canvas.drawBitmap(Canvas.java:1420)
at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:545)
如何解决此错误?
答案 0 :(得分:2)
在您的活动中尝试此操作:
val resourceId = this.getResources().getIdentifier(iiti.getImgName(), "drawable", this.getPackageName())
iv.setImageResource(resourceId)
或者你的碎片中的这个:
int resourceId = getActivity().getResources().getIdentifier(iiti.getImgName(), "drawable", getActivity().getPackageName());
iv.setImageResource(resourceId);
如有任何问题,请检查source
编辑:
这是你的崩溃:
Canvas: trying to draw too large(110250000bytes) bitmap.
因此,您尝试绘制的位图很大......那就是它。压缩文件,更改文件大小或做任何缩小文件大小的文件。如果你正在考虑 - 这个文件大110.25MB。
答案 1 :(得分:1)
将图像缩小为:
Bitmap b = BitmapFactory.decodeResource(context.getResources(),
resourceId);
iv.setImageBitmap(Bitmap.createScaledBitmap(b, b.getWidth()/2, b.getHeight/2, false));