我正在研究一个小的测试代码.它选择一个图像,根据屏幕密度调整其大小以适应屏幕.当它这样做时,它会以图像的大小xxhdpi显示图像的副本,然后转换为位图,然后转换为字符串.然后将String通过Intent传递到下一个屏幕,在该屏幕中String被转回Bitmap,然后放入ImageButton.
这很好用,直到我添加了一大块代码来调整基于密度的字符串给出的图像大小.奇怪的是我从另一个活动中复制并粘贴了DPI()方法,并且该活动没有任何问题.
package com.example.zachary.imagetesting.Resizing;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Base64;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import com.example.zachary.imagetesting.R;
public class PictureDecoded extends Activity {
TextView Text;
ImageButton Image;
String string;
Bitmap picture;
public float DPI(){return getResources().getDisplayMetrics().density;}
float dpi = DPI() * 180;
int size = (int) dpi;
public Bitmap Pic(String string){
try{
byte[] b = Base64.decode(string, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
return bitmap;
} catch (Exception e) { …Run Code Online (Sandbox Code Playgroud)