Я пытаюсь разработать приложение в android Studio, и я хочу использовать Paint
и Canvas
, в основном что-то рисовать, когда использую publishProgress
.Краска в Android Studio в фоновом режиме
Было бы здорово, если бы кто-нибудь из вас мог сказать мне, что не так с моим кодом, и почему это ничего не рисует.
Примечание. Это все в AsyncTaskActivity
классе
@Override
protected void doInBackground(Void... params) {
publishProgress(); // Run onProgressUpdate() method
}
}
@Override
protected void onProgressUpdate(Void... params) {
// Here you can access the UI thread
Canvas canvas = new Canvas();
Paint pa1= new Paint();
pa1.setColor(Color.RED);
pa1.setStyle(Paint.Style.FILL);
pa1.setStrokeWidth(50);
canvas.drawLine(0, 0, 100, 100, pa1);
}
Ваш холст не связан ни с чем на экране. Вероятно, вы захотите создать пользовательский вид, который 'onProgressUpdate' может использовать для отображения прогресса. –
Итак, я думаю, мне нужно создать новый класс с 'extends view' и попытаться вызвать' ondraw() 'из' onProgressUpdate() '. Это оно? – difegui
Представление должно быть частью иерархии представлений или оно все равно не появится на экране. Итак, нет, вы не хотите создавать новое представление. Вы должны определить представление в макете своей деятельности, а затем найти представление. Поместите фактический чертеж в метод 'onDraw' вида, поскольку [@Vova предлагает] (http://stackoverflow.com/a/41469887/535871). –