Android: изменение фона ImageView с помощью ввода EditText - PullRequest
2 голосов
/ 17 февраля 2012

Я пытаюсь написать свое первое приложение - простое приложение, в котором пользователь вводит шестнадцатеричный цветовой код (EditText), нажимает клавишу ввода (кнопка), и цвет фона ImageView изменяется на введенный пользователем шестнадцатеричный код.Как я вижу, мне придется получить текст из текста редактирования, записать текст gette в файл, а затем отредактировать файл, добавив 0xAA перед шестнадцатеричным кодом, чтобы его можно было ввести в ImageView.setBackgroundColor (0xAA "HEXHEX").Пожалуйста, дайте мне знать, как я могу это сделать, или если это даже правильный способ сделать это.

Здесь мой java (пока нажата кнопка, bg цвет меняется на белый, clear превращается в черный)

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Button;
import android.widget.ImageView;
import android.view.View;

public class ChkhexActivity extends Activity {
    private EditText hex;
    private Button chk;
    private Button clear;
    private ImageView view;
    /** Called when the activity is first created. */
    @Override

     public void onCreate(Bundle savedInstanceState)
     {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          initControls();
     }

     private void initControls()
     {
          hex = (EditText)findViewById(R.id.hex);
          chk = (Button)findViewById(R.id.chk);
          clear = (Button)findViewById(R.id.clear);
          view = (ImageView)findViewById(R.id.view);
          chk.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ Chk(); }});
          clear.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ Clear(); }});
     }

     private void Chk()
     {  
          view.setBackgroundColor(0xFFffffff);
     }

     private void Clear()
     {
          hex.setText("");
          view.setBackgroundColor(0xFF000000);
     }
}

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Очень хорошее упражнение для начинающего.

Использование Color.parseColor () .Не забудьте сначала проверить ввод!

view.setBackgroundColor(Color.parseColor(edt.getText().toString()));
0 голосов
/ 17 февраля 2012
every time u want to change the color of imageview based on text entered in edittext.so u cant fix it like this 
  view.setBackgroundColor(0xFFffffff);
 u have to get the text from edittext.some example like this..

public class test extends Activity{
private EditText ed;
private Button btn;
private ImageView iv;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        ed=(EditText)findViewById(R.id.editText1);
        btn=(Button)findViewById(R.id.button1);
        iv=(ImageView)findViewById(R.id.imageView1);
        btn.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                String value=ed.getText().toString();
                iv.setBackgroundColor(Color.parseColor(value));
            }
        });

 }

 }
the edittext text u entered can  be like hex format example like #B0171F,#fafad2,..
...