问题描述
我的应用中有一个椅子的 ImageView 对象。我有一个我想使用的库并且需要图像为 BGR888 图像格式。
我使用 Camera2 API 问了一个几乎准确的问题 here。我发现答案很有帮助,我决定让我的应用更容易(使用 1 个 ImageView)来尝试实施该问题的建议。
所以我尝试的步骤是:
- 将 ImageView 对象解码为位图(这是从 imageview 对象中获取原始图像)
但是,我仍然对如何获取原始图像感到困惑……在我的 onCreate() 方法中会是这样吗?
Bitmap bm = BitmapFactory.decodeResource(getResource(),R.id.imageView);
而 bm
会返回解码后的位图,所以它只是像素?
public class MainActivity extends AppCompatActivity {
TextView textView;
ImageView imageView;
int finalHeight,finalWidth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageView);
textView = findViewById(R.id.textView);
getWidthHeight();
}
void getWidthHeight(){
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
// Remove after the first run so it doesn't fire forever
imageView.getViewTreeObserver().removeOnPreDrawListener(this);
finalHeight = imageView.getMeasuredHeight();
finalWidth = imageView.getMeasuredWidth();
textView.setText("Height: " + finalHeight + " Width: " + finalWidth);
Log.d("height of img",String.valueOf(finalHeight));
Log.d("width of img",String.valueOf(finalWidth));
return true;
}
});
}
}
解决方法
如果您想将 Imageview 图像转换为位图,请按照以下代码进行操作。
private Bitmap convertToBitmap(){
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
return bitmap;
}
ConvertToBitmap() 方法返回位图文件。 你可以通过调用这个来获取Imageview位图。