Diskuze: Tvorba interaktívneho "terča" v android studiu
Inak pre porovnanie, niečo podobného a veľmi jednoduchého som vytváral aj tu:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout 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"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="4dp"
android:paddingBottom="16dp"
android:text="Team A"
android:textColor="#616161"
android:textSize="14sp" />
<TextView
android:id="@+id/team_a_score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="4dp"
android:text="0"
android:textColor="#000000"
android:textSize="56sp" />
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:onClick="addThreeForTeamA"
android:text="+3 Points" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:onClick="addTwoForTeamA"
android:text="+2 Points" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:onClick="addOneForTeamA"
android:text="Free throw" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="18dp"
android:background="@android:color/darker_gray" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="4dp"
android:paddingBottom="16dp"
android:text="Team B"
android:textColor="#616161"
android:textSize="14sp" />
<TextView
android:id="@+id/team_b_score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="4dp"
android:text="0"
android:textColor="#000000"
android:textSize="56sp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:onClick="addThreeForTeamB"
android:text="+3 POINTS" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:onClick="addTwoForTeamB"
android:text="+2 POINTS" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:onClick="addOneForTeamB"
android:text="FREE THROW" />
</LinearLayout>
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="32dp"
android:onClick="Reset"
android:text="Reset" />
</RelativeLayout>
package com.example.android.courtcounter;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
int ScoreOfTeamA = 0;
int ScoreOfTeamB = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* Increase the score for Team A by 1 point.
*/
public void addOneForTeamA(View v) {
ScoreOfTeamA = ScoreOfTeamA + 1;
displayForTeamA(ScoreOfTeamA);
}
/**
* Increase the score for Team A by 2 points.
*/
public void addTwoForTeamA(View v) {
ScoreOfTeamA = ScoreOfTeamA + 2;
displayForTeamA(ScoreOfTeamA);
}
/**
* Increase the score for Team A by 3 points.
*/
public void addThreeForTeamA(View v) {
ScoreOfTeamA = ScoreOfTeamA + 3;
displayForTeamA(ScoreOfTeamA);
}
/**
* Increase the score for Team B by 1 point.
*/
public void addOneForTeamB(View v) {
ScoreOfTeamB = ScoreOfTeamB + 1;
displayForTeamB(ScoreOfTeamB);
}
/**
* Increase the score for Team B by 2 points.
*/
public void addTwoForTeamB(View v) {
ScoreOfTeamB = ScoreOfTeamB + 2;
displayForTeamB(ScoreOfTeamB);
}
/**
* Increase the score for Team B by 3 points.
*/
public void addThreeForTeamB(View v) {
ScoreOfTeamB = ScoreOfTeamB + 3;
displayForTeamB(ScoreOfTeamB);
}
/**
* Displays the given score for Team A.
*/
public void displayForTeamA(int score) {
TextView scoreView = (TextView) findViewById(R.id.team_a_score);
scoreView.setText(String.valueOf(score));
}
/**
* Displays the given score for Team B.
*/
public void displayForTeamB(int score) {
TextView scoreView = (TextView) findViewById(R.id.team_b_score);
scoreView.setText(String.valueOf(score));
}
public void Reset(View v) {
ScoreOfTeamA = 0;
displayForTeamA(ScoreOfTeamA);
ScoreOfTeamB = 0;
displayForTeamB(ScoreOfTeamB);
}
}
zitekv:11.3.2017 21:30
Ahoj, do layoutu vlož ImageView a jako jeho zdroj použij xml se
ShapeDrawable typ "oval". Více možností si jistě najdeš na netu. Nejhorší
je zjistit jak se tomu nadává
Pro začátek zkus do hlavního xml vložit na místě terče
<ImageView
android:id="@+id/imageView1"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_width="352dp"
android:layout_height="352dp"
android:padding="0dp"
android:src="@drawable/oval1"/>
A do res/drawable tento soubor oval1.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="1dp"
android:color="#0000ff"/>
</shape>
Poprosím nejakého móda aby to presunul do lokácie fóra hardwaru priamo do androidu, aby to potom malo väčšiu relevanciu... Nevšimol som si že je tu aj originál lokácia pre android, ,ďakujem.
feardragon6:11.3.2017 21:48
Diky moc zitekv, ten ovál mi to dá do layoutu, problém je ako to vymyslieť, aby ich bolo viac v sebe a aby to tým pádom vyzeralo ako terč a následne vymyslieť, ako tomu dať funkcionalitu. Čo som sa pýtal na stack overflow tak mi tam ľudia rovno dali odkaz na android developers na vytváranie vlastných view a dávanie im špecifických hodnot a vlastností, čo je ale momentálne ďaleko nad moje schopnosti. Neviem či existuje nejaký spôsob, ako to obísť...
zitekv:11.3.2017 22:00
Poskládáš postupně víc kruhů do sebe, přidáš osy. Začni s jedním terčem a až potom laboruj s dvěma. No a pak budeš snimat doteky a počítat
feardragon6:11.3.2017 22:17
To hej ale ja vôbec neviem, ako pridať ďalší kruh, a už vôbec nie ako pridať osi a čo je vlastne ten obrázok čo si mi poslal, okrem toho ako to ma finálne vyzerať. Mohol by si mi skúsiť prosím ťa od toho poslať kód, aby som vlastne vedel od čoho sa odraziť ? Toto vidím prvý krát, nemám poňatie ani aké základné princípy sa tu uplatňujú.
Zobrazeno 8 zpráv z 8.