Autore Topic: Custom View in layout annidato  (Letto 383 volte)

Offline gl

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    MAC OS X 10.6.8
Custom View in layout annidato
« il: 23 Ottobre 2012, 00:10:17 CEST »
0
Ciao, sono alle prese con un piccolo problema che spero sappiate aiutarmi a risolvere. Sto cercando di creare un'applicazione che tra le varie activity ne prevede due in particolare sulle quali devo effettuare dei disegni dinamici in base a degli input da bluetooth. La prima activity dovrebbe essere costituita da una parte con pulsanti ed una in cui effettuare il disegno, che però non riesco ad effettuare all'interno della vista draw_view1 e sovrapposta all'immagine di sfondo.
   
Codice (Java): [Seleziona]
package com.example.mycode;

import com.example.mycode.DrawView;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class DrawMapActivity extends Activity {
        DrawView dv;
        Paint paint=new Paint();
        Canvas canvas= new Canvas();
       
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_draw_map);
            dv = new DrawView(this);
            dv.setBackgroundColor(Color.BLACK);
            dv.onDraw(canvas);
        }
   
   
   

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_draw_map, menu);
        return true;
    }
}
Non so qui se oltre ad indicare il package sto sbagliando altro...
Codice (XML): [Seleziona]
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >

    <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="152dp"
       android:layout_gravity="bottom"
       android:orientation="vertical" >

        <Button
           android:id="@+id/button1"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="left|center_vertical"
           android:text="Button" />

        <Button
           android:id="@+id/button2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="top"
           android:text="Button" />

        <Button
           android:id="@+id/button3"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="bottom"
           android:text="Button" />

    </LinearLayout>

    <FrameLayout
       android:id="@+id/drawable_frame"
       android:layout_width="match_parent"
       android:layout_height="328dp"
       android:layout_gravity="top"
       android:contentDescription="@string/title_activity_draw_map" >

        <com.example.mycode.DrawView
           android:id="@+id/draw_view1"
           android:layout_width="match_parent"
           
           android:layout_height="match_parent"
           
           android:background="@drawable/radar_screen" />

    </FrameLayout>

</FrameLayout>

Codice (Java): [Seleziona]
package com.example.mycode;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class DrawView extends View {
    Paint paint = new Paint();
    float[] pts= new float[100];
   
   
    public DrawView(Context context) {
        super(context);
        paint.setColor(Color.RED);
    }

   
    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
        paint.setColor(Color.RED);
    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        for(int i=0; i<100; i++)
                pts[i]=i;
       
        canvas.drawLine(0, 0, 20, 20, paint);
        canvas.drawLine(20, 0, 0, 20, paint);
        canvas.drawPoints(pts,paint);
    }

}

Grazie in anticipo a chi vorrà aiutarmi.
« Ultima modifica: 23 Ottobre 2012, 00:43:07 CEST da gl »