Во втором упражнении у меня возникли некоторые проблемы с расположением моего хронометра. Во втором упражнении у меня есть .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];
}
}