Lié une Surfaceview à son layout
Bonjour,
J'essaie d'adapter un exemple de Surfaceview, mais qui ne prend qu'une partie de l'écran, et surtout ne recouvre pas mes boutons.
J'ai donc créé une Surfaceview dans mon layout.
Mon xml en partie:
Code:
1 2 3 4 5 6 7 8 9 10
|
<SurfaceView
android:layout_width="match_parent"
android:layout_height="300dp"
android:id="@+id/surfaceView"
android:layout_alignParentTop="true" />
</RelativeLayout> |
J'ai la classe "EcranDessin" avec les trois constructeurs:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public class EcranDessin extends SurfaceView implements Runnable{
//--
Thread t = null;
//-- Déclaration du "Holder" utile pour les manipulations
SurfaceHolder holder;
//-- Drapeau de contrôle
boolean isItOk = false;
public EcranDessin(Context context) {
super(context);
//-- lancement du Holder
holder = getHolder();
}
public EcranDessin(Context context, AttributeSet attrs) {
super(context, attrs);
holder = getHolder();
}
public EcranDessin(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
holder = getHolder();
} |
Dans mon activité principale je déclare un objet v EcranDessin puis je l'instance en le liant à mon layout.
Code:
1 2
|
v = (EcranDessin) findViewById(R.id.surfaceView); |
Mais il n'en veut pas "Unexpeted cast to EcranDessin"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
ublic class MainActivity extends Activity {
Button btnstart, btnnext, btnquit;
EcranDessin v ; //-- Définition d'une vue v de type EcranDessin
Bitmap Bille; //-- BitMap
float x,y; //-- Coordonnées du BitMap
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnstart = (Button) findViewById(R.id.btnstart);
btnnext = (Button) findViewById(R.id.btnnext);
btnquit = (Button) findViewById(R.id.btnquit);
v = (EcranDessin) findViewById(R.id.surfaceView); |
Qu'est ce qui ne va pas ?
Merci pour votre aide.