Не могу отобразить макет в моем втором действии - PullRequest
0 голосов
/ 24 января 2020

Во втором упражнении у меня возникли некоторые проблемы с расположением моего хронометра. Во втором упражнении у меня есть .bmp, который я могу отобразить, но не могу отобразить свой хронометр. Можете ли вы помочь мне, пожалуйста, спасибо.

здесь мое первое занятие

package com.maze.maze;

import androidx.appcompat.app.AppCompatActivity;

import android.content.res.AssetManager;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Button;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.widget.ImageView;
import java.io.InputStream;
import java.io.IOException;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.BitmapDrawable;


public class MainActivity extends AppCompatActivity {

    RadioGroup radiogroup;
    Button button_val;
    EditText e_prenom;
    EditText e_nom;
    private static final String SAVED_TEXT_KEY = "some_key";



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button_val=findViewById(R.id.button_v);
        radiogroup=findViewById(R.id.radiogroup);
        e_prenom=findViewById(R.id.e_prenom);
        e_nom=findViewById(R.id.e_nom);




        button_val.setOnClickListener(new View.OnClickListener() {
            @Override


            public void onClick(View view){

                int  laby =0;
                switch (radiogroup.getCheckedRadioButtonId())
                {
                    case R.id.radio_1: laby=1; break;
                    case R.id.radio_2: laby=2; break;
                    case R.id.radio_3: laby=3; break;
                    case R.id.radio_4: laby=4; break;
                    case R.id.radio_5: laby=5; break;
                }
                Intent intent_laby= new Intent();
                intent_laby.putExtra("num_labyrinth",laby);
                Intent intent_nom= new Intent();
                intent_nom.putExtra("nom", e_nom.getText() );
                Intent intent_prenom= new Intent();
                intent_prenom.putExtra("prenom", e_prenom.getText() );
                startActivity(new Intent(MainActivity.this, Activity_labyrinth.class));
            }

        });

    }




}

здесь мое второе занятие


import java.io.InputStream;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.content.res.Resources;
import android.util.Log;
import android.widget.Chronometer;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class Activity_labyrinth extends AppCompatActivity {

    Labyrinthe labyrinthe;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        labyrinthe=new Labyrinthe(this);

       Intent intent_lab  = getIntent();
       labyrinthe.num_lab=intent_lab.getIntExtra("num_labyrinth",1);
        //Log.i("text","num"+labyrinthe.num_lab);
        labyrinthe.init(this);

        setContentView(labyrinthe);

    }
}


XML второго занятия

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="visible"
    tools:context=".Activity_labyrinth"
    tools:visibility="visible">

    <Chronometer
        android:id="@+id/chronometer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginStart="1200dp"
        android:layout_marginLeft="1200dp"
        android:layout_marginTop="300dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="300dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

И мой класс Лабиринт


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.content.res.AssetManager;

import androidx.annotation.RequiresApi;

import java.io.IOException;
import java.io.InputStream;


public class Labyrinthe extends View implements SensorEventListener {
    Bitmap bitmap;
    int num_lab;
    InputStream l=null;
    ImageView image;

    public Labyrinthe(Context context)  {
        super(context);
        image=findViewById(R.id.image);
    }

    void init(Context context){

        AssetManager assetManager= context.getAssets();
        try {
            switch (num_lab){
                case 1: l= assetManager.open("1.bmp"); break;
                case 2: l= assetManager.open("2.bmp"); break;
                case 3: l= assetManager.open("3.bmp"); break;
                case 4: l= assetManager.open("4.bmp"); break;
                case 5: l= assetManager.open("5.bmp"); break;

            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        Rect rectangle=new Rect();
        BitmapFactory.Options opt=new BitmapFactory.Options();
        bitmap=  BitmapFactory.decodeStream(l,rectangle,opt);


    }

    @Override
    protected void onDraw(Canvas canvas){

        Rect screen=new Rect();
        screen.set(50,50,canvas.getWidth()-400,canvas.getHeight()-70);
        canvas.drawBitmap(bitmap ,null,screen,null);
        super.onDraw(canvas);

    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int i) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onSensorChanged(SensorEvent sensor_event) {
        // TODO Auto-generated method stubv
        float acc_x = sensor_event.values[0];
        float acc_y = sensor_event.values[1];

    }




}

...