Autore Topic: Inserire una Custom View come backgound in layoout Xml  (Letto 360 volte)

Offline roby492

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S3
  • Sistema operativo:
    Windows 7
Inserire una Custom View come backgound in layoout Xml
« il: 13 Novembre 2013, 00:59:00 CET »
0
Ciao a tutti ragazzi,

Vi chiedo aiuto sul un problema sicuramente banale che mi sta portando via diverso tempo. Allora, vediamo di schematizzare. Sto tentando di realizzare una sorta di gioco della bottiglia e vorrei uno "sfondo" dinamico composto da triangoli di colore diverso che partono dal centro e dividono lo schermo in base al numero di giocatori, più una bottiglia appoggiata sullo schermo che gira.

il problema è che vorrei realizzare lo sfondo con i canvas e poi definendo nell'xml dell'activity principale la costum view nella quale disegno i triangoli colorati. Il problema? che il disegno viene tagliato nell'angolo, lasciando un margine bianco che non riesco a riempire. Vi posto il codice così magari vedete dove sbaglio.

Codice (Java): [Seleziona]
public class DrawView extends View {
    private static final String TAG = "DrawView";
    private Toast toast;
    Paint paint = new Paint();
    Bitmap bottiglia;
    Random rambo;
 
    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
        paint=new Paint();
        paint.setAntiAlias(true);
        paint.setColor(Color.RED);
        paint.setAntiAlias(true);
    }
 
    public DrawView(Context context) {
        super(context);
        paint=new Paint();
        paint.setAntiAlias(true);
        //setFocusable(true);
        //setFocusableInTouchMode(true);
        paint.setColor(Color.RED);
        paint.setAntiAlias(true);
    }
   
    @Override
    public void onDraw(Canvas canvas) {
                Paint wallpaint = new Paint();
                wallpaint.setColor(Color.BLUE);
                wallpaint.setStyle(Style.FILL);
                Path wallpath = new Path();
                wallpath.reset();
                wallpath.moveTo(360, 640);
                wallpath.lineTo(360, 1280);
                wallpath.lineTo(720, 1280);
                canvas.drawPath(wallpath, wallpaint);
                invalidate();
        }
        }

Codice (XML): [Seleziona]
<RelativeLayout 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"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:id="@+id/root"
   tools:context=".MainActivity" >

<com.example.spinthebottle.DrawView
                        android:id="@+id/draw1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                                />

<ImageView
   android:id="@+id/ImageViewOggetto"
   android:layout_width="120dip"
   android:layout_height="180dip"
   android:layout_centerHorizontal="true"
   android:layout_centerVertical="true"
   android:background="@android:color/transparent"
   android:src="@drawable/bottiglia" />
                               

</RelativeLayout>


Mentre nel file MainActivity.java definisco solamente setContentView(R.layout.activity_main); e gestisco il funzionamento del gioco.

Grazie a tutti quelli che leggeranno e ancor di più a chi tenterà di aiutarmi :D

Post unito: 13 Novembre 2013, 17:41:50 CET
Mi rispondo da solo.
E' bastato impostare questi valori a zero e quelli dei margini dell'activity principale.

android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"

Grazie e alla prossima.

Roberto
« Ultima modifica: 13 Novembre 2013, 17:41:50 CET da roby492, Reason: Merged DoublePost »