Skip to content
Snippets Groups Projects
Commit 845a22bf authored by COLLINOT Baptiste's avatar COLLINOT Baptiste
Browse files

V1

parents
Branches
No related tags found
No related merge requests found
Showing
with 932 additions and 0 deletions
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>
\ No newline at end of file
plugins {
id("com.android.application")
}
android {
namespace = "com.example.visualisation"
compileSdk = 34
defaultConfig {
applicationId = "com.example.visualisation"
minSdk = 21
targetSdk = 33
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.10.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("com.google.code.gson:gson:2.8.9")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
}
\ No newline at end of file
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
\ No newline at end of file
package com.example.visualisation;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.example.visualisation", appContext.getPackageName());
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature
android:name="android.hardware.sensor.accelerometer"
android:required="true" />
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="true" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Visualisation"
tools:targetApi="31">
<activity
android:screenOrientation="portrait"
android:name=".PieceDetailsActivity"
android:exported="false" />
<activity
android:screenOrientation="portrait"
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
\ No newline at end of file
package com.example.visualisation;
import java.io.Serializable;
public class Acces implements Serializable {
private String piece1;
private String piece2;
private int[] coord;
public Acces(String piece1, int[] coord) {
this.piece1 = piece1;
this.piece2 = "";
this.coord = coord;
}
public void setPiece2(String piece2) {
this.piece2 = piece2;
}
public int[] getCoord() {
return this.coord;
}
}
package com.example.visualisation;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private PiecesAdapter adapter;
private Modele modele;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
modele = new Modele();
adapter = new PiecesAdapter(modele, this);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
}
public void clicLoad(View view) {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("application/json");
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
Uri uri = data.getData();
String jsonLoad = loadJsonFromFile(uri);
Gson gson = new Gson();
Modele modeleLoad = gson.fromJson(jsonLoad, Modele.class);
this.modele = modeleLoad;
adapter.update(modele);
}
}
private String loadJsonFromFile(Uri uri) {
try {
InputStream inputStream = getContentResolver().openInputStream(uri);
if (inputStream != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
inputStream.close();
return stringBuilder.toString();
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.quitterMenu) {
System.exit(0);
} else if (id == R.id.importerModele) {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("application/json");
startActivityForResult(intent, 1);
return true; }
return super.onOptionsItemSelected(item);
}
}
\ No newline at end of file
package com.example.visualisation;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
public class Modele implements Serializable, Iterable<Piece> {
private ArrayList<Piece> pieces;
public Modele() {
this.pieces = new ArrayList<>();
}
public ArrayList<Piece> getPieces() {
return pieces;
}
public void setPieces(ArrayList<Piece> pieces) {
this.pieces = pieces;
}
public Iterator<Piece> iterator() {
return pieces.iterator();
}
public int getNbPieces() {
return pieces.size();
}
public void ajouter(Piece piece) {
this.pieces.add(piece);
}
public void setPiece(int i, Piece piece) {
this.pieces.set(i, piece);
}
public Piece getPiece(int i) {
return pieces.get(i);
}
public void clear() {
this.pieces.clear();
}
}
package com.example.visualisation;
import java.io.Serializable;
import java.util.ArrayList;
public class Photo implements Serializable {
private String path;
private ArrayList<Acces> acces;
public Photo() {
this.path = "";
this.acces = new ArrayList<>();
}
public int getNbAcces() {
return acces.size();
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public ArrayList<Acces> getAcces() {
return acces;
}
public void ajouterAcces(String piece1, int[] coord) {
Acces nouvelAcces = new Acces(piece1, coord);
this.acces.add(nouvelAcces);
}
}
package com.example.visualisation;
import java.io.Serializable;
import java.util.ArrayList;
public class Piece implements Serializable {
private String nom;
private ArrayList<Photo> photos;
public Piece(String nom) {
this.nom = nom;
this.photos = new ArrayList<>();
for (int i = 0; i < 4; i++) {
this.photos.add(new Photo());
}
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public int getNbAcces() {
int somme = 0;
for (Photo photo : photos) {
somme = somme + photo.getNbAcces();
}
return somme;
}
public ArrayList<String> getPathsPhotos() {
ArrayList<String> res = new ArrayList<>();
for (Photo photo : photos) {
res.add(photo.getPath());
}
return res;
}
public Photo getPhoto(int indice) {
return this.photos.get(indice);
}
public void setPath(int indice, String path) {
this.photos.get(indice).setPath(path);
}
}
package com.example.visualisation;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class PieceDetailsActivity extends AppCompatActivity {
private TextView nomPiece;
private ImageView imageView;
private Modele modele;
private Piece pieceDepart;
private int indicePhoto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_piece_details);
nomPiece = findViewById(R.id.nomPiece);
imageView = findViewById(R.id.imageView);
indicePhoto = 0;
Intent intent = getIntent();
if (intent != null) {
modele = (Modele) intent.getSerializableExtra("modele");
pieceDepart = (Piece) intent.getSerializableExtra("piece");
nomPiece.setText(pieceDepart.getNom());
afficherPhoto();
}
}
public void clicPhotoGauche(View view) {
if (indicePhoto == 0) {
indicePhoto = 3;
} else {
indicePhoto--;
}
afficherPhoto();
}
public void clicPhotoDroite(View view) {
if (indicePhoto == 3) {
indicePhoto = 0;
} else {
indicePhoto++;
}
afficherPhoto();
}
private void afficherPhoto() {
imageView.setImageResource(R.drawable.ajouter_photo);
imageView.setAdjustViewBounds(true);
String path = pieceDepart.getPhoto(indicePhoto).getPath();
if (path != "") {
Bitmap bitmap = BitmapFactory.decodeFile(getFilesDir() + "/" + path);
imageView.setImageBitmap(bitmap);
imageView.setAdjustViewBounds(true);
}
}
}
\ No newline at end of file
package com.example.visualisation;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class PiecesAdapter extends RecyclerView.Adapter<PiecesViewHolder> {
private Modele modele;
private Context context;
public PiecesAdapter(Modele modele, Context context) {
this.modele = modele;
this.context = context;
}
@NonNull
@Override
public PiecesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.pieces_item, parent, false);
return new PiecesViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull PiecesViewHolder holder, int position) {
Piece p = modele.getPiece(position);
holder.setNom(p.getNom());
holder.setNbAcces(p.getNbAcces());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int position = holder.getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
Piece pieceClic = modele.getPiece(position);
Intent intent = new Intent(view.getContext(), PieceDetailsActivity.class);
intent.putExtra("modele", modele);
intent.putExtra("piece", pieceClic);
intent.putExtra("position", position);
((Activity) context).startActivity(intent);
}
}
});
}
@Override
public int getItemCount() {
return this.modele.getNbPieces();
}
public void update(Modele modele) {
this.modele.clear();
for (Piece piece : modele) {
this.modele.ajouter(piece);
}
notifyDataSetChanged();
}
}
package com.example.visualisation;
import android.view.View;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
public class PiecesViewHolder extends RecyclerView.ViewHolder {
TextView nom;
TextView nbAcces;
public PiecesViewHolder(View itemView) {
super(itemView);
nom = (TextView) itemView.findViewById(R.id.nom_item);
nbAcces = (TextView) itemView.findViewById(R.id.acces_item);
}
public void setNom(String nom) {
this.nom.setText(nom);
}
public void setNbAcces(int nbAcces) {
this.nbAcces.setText(String.valueOf(nbAcces));
}
}
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
\ No newline at end of file
app/src/main/res/drawable/ajouter_photo.png

2.29 KiB

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#D3D3D3" />
<stroke android:color="@color/black" android:width="2dp" />
</shape>
\ No newline at end of file
<?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="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="MissingConstraints">
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/modeleLoad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Charger un modèle"
android:textColor="@android:color/black"
android:background="@android:color/holo_orange_light"
android:onClick="clicLoad"
tools:ignore="UsingOnClickInXml" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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="match_parent"
tools:context=".PieceDetailsActivity">
<LinearLayout
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:background="@color/white">
<TextView
android:id="@+id/nomPiece"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nom de la pièce"
android:textSize="24sp"
android:gravity="center_horizontal" />
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:adjustViewBounds="true"
android:onClick="choixPhoto" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:gravity="center_horizontal" >
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btnPhotoGauche"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Photo gauche"
android:textColor="@android:color/black"
android:background="@android:color/holo_orange_light"
android:onClick="clicPhotoGauche"
tools:ignore="UsingOnClickInXml" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btnPhotoDroite"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Photo droite"
android:textColor="@android:color/black"
android:background="@android:color/holo_orange_light"
android:onClick="clicPhotoDroite"
tools:ignore="UsingOnClickInXml" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="20dp"
android:background="@drawable/recycler_background"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/nom_item"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@android:color/black"
android:textSize="24sp"/>
<TextView
android:id="@+id/acces_item"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@android:color/black"
android:textSize="24sp"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment