我有两个问题可以帮助我,我是编程的新手,这可能很容易,但我找了几天的答案,但却无法得到它们。我正在做一个简单的android应用程序,你在其中输入一个纯文本字段中的十六进制数字,当你点击一个按钮时,画布会被创建,你会看到画布中那个十六进制数字的颜色(例如:0xff000000你会变黑) )遗憾的是我无法将字符串作为整数变量用于Canvas.drawcolor(),有人能告诉我如何正确地做到这一点,和/或为什么我在做什么是错的?
我的第二个问题是如何在不创建按钮的情况下使画布显示,而文本字段在创建时会从布局中消失?
这是我的代码,我创建了toast以查看我是否正确获取字符串:
public class MainActivity extends Activity implements TextWatcher{
private Bitmap mBitmap;
private Canvas mCanvas;
private ImageView mImageView;
private EditText mHexadecimal;
private String comments;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHexadecimal = (EditText) findViewById(R.id.Hexadecimal);
mHexadecimal.addTextChangedListener(this);
}
public void onClick(View v) {
mBitmap = Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
comments = mHexadecimal.getText().toString();
Toast.makeText(getApplicationContext(), comments,Toast.LENGTH_LONG).show();
mCanvas.drawColor(Integer.parseInt(comments,16));
mImageView = new ImageView(this);
mImageView.setImageBitmap(mBitmap);
setContentView(mImageView);
}
答案 0 :(得分:0)
嗯,你可以尝试这样做:
String color = "#FCFC0000"; //this is your color string
int colorCode = Integer.parseInt(string.replaceFirst("^#",""), 16);
然后尝试在mCanvas
中设置此 colorCode 。