如何通过单击android中的按钮绘制不同的形状?

时间:2014-03-08 21:11:16

标签: android button drawing

我一直在寻求帮助这样做,我正在尝试创建一个蛇游戏,我需要做的是在点击按钮时绘制到位图或图像视图中,这就是问题:每次我画一个形状,然后布局被删除,我的目标是绘制到任何对象,而我仍然可以单击一个按钮,我已经做的是绘制布局和显示图像,这是我的代码:

public class DisplayMessage extends Activity {


ImageView image;    

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_message);
    Intent intent = getIntent();
    String message = intent.getStringExtra("Hola Jorge");
    DrawView drawView;

    drawView = new DrawView(this);
    setContentView(drawView);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.display_message, menu);
    return true;
}

}


package mipaca;

public class DrawView extends View {
Paint paint = new Paint();

public DrawView(Context context) {
    super(context);
    paint.setColor(Color.BLACK);
}

@Override
public void onDraw(Canvas canvas) {

        //canvas.drawColor(Color.GREEN); 

        canvas.drawLine(0, 0, 20, 20, paint);
        canvas.drawLine(20, 0, 0, 20, paint);
        Bitmap compara = Bitmap.createBitmap(100, 100, Config.ARGB_8888);
        canvas.drawBitmap(compara, 0, 0, paint);

        Rect rectangle = new Rect(0,0,100,100);
        canvas.drawBitmap(compara, 0,0,null);

}

}

public class MainActivity extends Activity {

CharSequence[] items = {"Google","Apple","Microsoft"};
boolean[] itemsChecked = new boolean[items.length];

ImageView image;    

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public void onClick2(View v)
{

    Intent intent = new Intent(this, DisplayMessage.class);
    startActivity(intent);

}

public void onClick(View v)
{
    //image.setImageResource(R.drawable.ferrari_458_italia_1);
    showDialog(0);
    DrawView2 alpha;
}

@Override
protected Dialog onCreateDialog(int id){
    switch(id){
    case 0:
        return new AlertDialog.Builder(this)
        .setIcon(R.drawable.ic_launcher)
        .setTitle("Este es un diálogo con algo de texto")
        .setPositiveButton("OK", 

        new DialogInterface.OnClickListener(){
            public void onClick(DialogInterface dialog, int whichButton)
            {
                Toast.makeText(getBaseContext(), "bien, click!", Toast.LENGTH_SHORT).show();
            }



        }
        )
        .setNegativeButton("Cancel",            new DialogInterface.OnClickListener(){
            public void onClick(DialogInterface dialog, int whichButton)
            {
                Toast.makeText(getBaseContext(), "bien, click!",     Toast.LENGTH_SHORT).show();
            }



        }
).create();


    }
    return null;
}

public void onDraw(Canvas canvas)
{
    Paint p = new Paint();
    p.setColor(Color.BLUE);
    p.setAntiAlias(true);
    canvas.drawColor(Color.CYAN);
    canvas.drawCircle(200, 200, 50, p);
}

}

1 个答案:

答案 0 :(得分:0)

我希望这有助于某人,我忘记了这个问题,直到我遇到这个想法:我们可以使用ImageView然后使用位图用画布绘制任何形状,我更容易用这种方式绘制而不是使用OnPaint函数和invalidate因为只是修改位图并显示它我们可以在图像上移动一个对象,但仍然有按钮,文本框等。这就是我所做的:

(亚麻是我们的ImageView)

Bitmap bMap = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);  
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
android.graphics.Bitmap.Config bitmapConfig = bMap.getConfig();
if(bitmapConfig == null) {
bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
}
bMap = bMap.copy(bitmapConfig, true);
Canvas canvas = new Canvas(bMap);
paint.setColor(Color.rgb(61, 61, 61));
canvas.drawCircle(10, 10, 5, paint);        
linen = (ImageView)findViewById(R.id.View1);
linen.setImageBitmap(bMap);
相关问题