Нарисуйте форму, используя холст в Android Studio, не используя пользовательский вид - PullRequest
0 голосов
/ 24 января 2019

Моя задача - нарисовать фигуру во втором упражнении, когда пользователь нажимает кнопку.Поэтому я попробовал следующий код, но он не работает.

Я ссылался на множество учебных пособий, но все они делали в другом представлении.Я не понял представление.

MainActivity.java

public class MainActivity extends AppCompatActivity implements 
View.OnClickListener {
    Button draw;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        draw = findViewById(R.id.drawButton);
        draw.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        shape = dropdown.getSelectedItem().toString();
        Bundle b = new Bundle();
        b.putString("shape",shape);
        Intent i = new Intent(getApplicationContext(),shapes.class);
        i.putExtras(b);
        startActivity(i);
    }
}

Shapes.java

public class shapes extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shapes);
        Canvas canvas = new Canvas();
        Rect rec = new Rect();
        rec.top=100;
        rec.left=100;
        rec.bottom = rec.top + 100;
        rec.right = rec.left+ 100;
        Paint p = new Paint();
        p.setColor(Color.GREEN);
        canvas.drawRect(rec,p);

    }
}

1 Ответ

0 голосов
/ 24 января 2019

При нажатии кнопки вы вызываете намерение, и это создаст новую активность.Вы можете добавить простой вид изображения в основной макет упражнения, а затем настроить рисунок холста следующим образом.

   ImageView imageView=(ImageView) findViewById(R.id.image);
    Bitmap bitmap = Bitmap.createBitmap(100, 100, 
    Bitmap.Config.ARGB_8888);    
    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setColor(Color.BLACK);
    Rect rec = new Rect();
    rec.top=0;
    rec.left=0;
    rec.bottom = rec.top + 100;
    rec.right = rec.left+ 100;
    canvas.drawRect(rec,paint);
    imageView.setImageBitmap(bitmap);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...