2017-02-17 10 views
0

Я новичок в программировании ... так что, возможно, этот вопрос звучит забавно для вас. У меня возникла проблема с созданием нового CanvasView внутри MainActivity, потому что в его скобках есть что-то написанное. Вот мой MainActivity:Создание нового CanvasView

public class MainActivity extends AppCompatActivity { 
    CanvasView myView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     //the line below doesnt work 
     myView = new CanvasView(); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
    public void button1(View v){ 
     CanvasView.l = 400; 
     myView.invalidate(); 
    } 
} 

и вот мой CanvasView:

public class CanvasView extends View{ 
    Paint paint = new Paint(); 
    static int l = 500; 

    public CanvasView (Context context, AttributeSet attrs) { 
     super(context); 
     paint = new Paint(); 
     paint.setAntiAlias(true); 
     paint.setColor(Color.GREEN); 
     paint.setStyle(Paint.Style.STROKE); 
     paint.setStrokeJoin(Paint.Join.ROUND); 
     paint.setStrokeWidth(10); 
    } 
    @Override 
    public void onDraw(final Canvas canvas) { 
     canvas.drawLine(100,100,l,100,paint); 
    } 
} 

ответ

0

Создать YOUT холст после super.onCreate и setContentView, как показано ниже

super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myView = new CanvasView();

+0

Я действительно не понимаю, что вы имеете в виду первую строку: «метод super.onCreate». – nok4