我创建了自己的视图,包括画布。
我正在开始一个从oncreate中的内部存储器加载位图的活动,并将此位图设置为画布。
当我尝试在功能onCreate中将照片加载到此画布时,它无效。
但是当我尝试从onClickListener加载这张照片时,它正在运行。
可能是什么问题? 如何在活动开始时自动将此照片加载到画布?
编辑: 代码在这里:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign);
signatureView = findViewById(R.id.signView);
clearBtn = findViewById(R.id.clearBtn);
acceptSignBtn = findViewById(R.id.acceptSignBtn);
String fileName = getIntent().getStringExtra("photo");
try {
FileInputStream fis = openFileInput(fileName);
byte[] byteArray = new byte[getIntent().getIntExtra("size", fis.available())];
fis.read(byteArray);
fis.close();
photo = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
photo = photo.copy(Bitmap.Config.ARGB_8888, true);
Log.i("TAG", "load done" +photo.getHeight());
signatureView.setBitmap(photo); //There is no result, canvas stay clear
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
clearBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
signatureView.clearCanvas();
signatureView.setBitmap(photo); //after click photo appears
}
});
}
答案 0 :(得分:0)
尝试在onStart或onResume方法中加载照片(通常它应该在onCreate中工作)
答案 1 :(得分:0)
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
//Your Image Loading Logic Goes Here
}
在UI完全可见后调用此方法。
因为在完全创建并可见UI之后调用onClick。