gpt4 book ai didi

android - 从 EditText 及其内容创建位图图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:56 25 4
gpt4 key购买 nike

我在 Activity 中有一个简单的 EditText,我想从那个 EditText 创建一个 Bitmap Image和 EditText 的内容Image 应该与 EditText 及其 content 看起来相同。

这是我希望图像的样子,尽管这是一个 EditText,但我想要一个看起来应该与此相同的位图。那么,我怎样才能做到这一点?任何想法都会很棒。

enter image description here

这是我的代码,

public class EditTextPinchZoomActivity extends Activity {

EditText editText;
ImageView imageView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

imageView = (ImageView) findViewById(R.id.image_view);
editText = (EditText) findViewById(R.id.edit_text);
editText.buildDrawingCache();
}

public void myOnClick(View view) {

switch (view.getId()) {
case R.id.btn:
imageView.setImageBitmap(editText.getDrawingCache());

break;
default:
break;
}
}
}

最佳答案

您可以通过构建绘图缓存来获取位图。这应该有效。

EditText edit = (EditText)findViewById(R.id.edit);
edit.buildDrawingCache();
ImageView img = (ImageView)findViewById(R.id.test);
img.setImageBitmap(edit.getDrawingCache());

Lalit 当您尝试在 onCreate 方法中构建缓存时,绘图尚未发生,因此 drawingCache 应该什么都没有。要么将 buildDrawingChache 方法放在 onClick 方法中。或者在onCreate中使用如下代码。

ViewTreeObserver vto = editText.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
editText.buildDrawingCache();
}
});

但我认为在 onClick 方法中构建缓存是合适的,因为届时屏幕将被绘制。我记得的另一件事是,如果您在 onCreate 之后输入文本,那么您应该在那之后构建缓存。所以试试第一种方法。

ViewTreeObserver

它是一个 View 或 View 组的全局布局监听器,当布局发生任何变化时,它会不断被调用。我通常在需要在 onCreate 方法中获取 View 的宽度和高度的情况下使用它。没有这个,该值将始终为 0,因为没有进行绘图或测量。

假设您需要在键入时不断更新 edittext 的 ImageView ,您可以使用它并只删除我删除监听器的第一行。即使光标闪烁,也会为您键入的每个字符调用监听器。

关于android - 从 EditText 及其内容创建位图图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7763667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com