어제 기본적인 home 화면의 기초 xml을 만들어놓고
오늘은 키워드 중에서 '볼링' 키워드를 눌렀을떄 나오는 화면을 구성했다!
- activity_bowling.xml 생성
- BowlingActivity.java 생성
- MainActivity → BowlingActivity 로 가는 intent 생성
- BowlingActivity → MainActivity 로 가는 intent 생성
간단하게 여기까지만 구현하는걸로!
1. activity_bowling.xml
볼링 키워드를 눌렀을 때 이동할 화면이다.
ImageView로 사진 4가지를 생성하고 아래에 TextView로 수상 경력을 써 둔 xml이다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#F2EDED"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_margin="5dp"
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="1"
android:scaleType="centerCrop"
android:src="@mipmap/contest1"/>
<ImageView
android:layout_margin="5dp"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@mipmap/contest2"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_margin="5dp"
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="1"
android:scaleType="centerCrop"
android:src="@mipmap/contest3"/>
<ImageView
android:layout_margin="5dp"
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="1"
android:scaleType="centerCrop"
android:src="@mipmap/contest4"/>
</LinearLayout>
<LinearLayout
android:layout_margin="10dp"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_margin="5dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_gravity="center_vertical"
android:fontFamily="@font/font"
android:textSize="27sp"
android:textStyle="bold"
android:gravity="center_horizontal"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="※ 수상 경력 (스크롤) ※"/>
<Button
android:id="@+id/btn_home"
android:layout_marginRight="15dp"
android:textSize="16sp"
android:backgroundTint="#BDA381"
android:fontFamily="@font/font"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="이전화면"/>
</LinearLayout>
<ScrollView
android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2022 동서대 기존여자 high"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2022 부경대 기존여자 1등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023-2월 부산지역대학생볼링연합 기존여자 1등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023 동아대 기존여자 4등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023-8월 부산지역대학생볼링연합 기존여자 4등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023 동명대 기존여자 3등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023 동의대 기존여자 3등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2024-2월 부산지역대학생볼링연합 기존여자 3등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2024 동서대 기존여자 1등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2024 부산대 기존여자 3등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2024-8월 부산지역대학생볼링연합 기존여자 1등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="▶ 추후대회 : 동명대, 부경대, 동의대, 재부"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
</LinearLayout>
워낙 동아리를 열심히 나가고 취미 활동을 열심히 하다보니..ㅎㅎ
대학생활에서 얻게 된 상이 워낙 많아서 한 화면에 다 담기가 어렵다고 판단했다.
그래서 수상경력에 포함되는 여러개의 TextView를 담을 ScrollView를 추가해줬다.
<ScrollView
android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2022 동서대 기존여자 high"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2022 부경대 기존여자 1등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023-2월 부산지역대학생볼링연합 기존여자 1등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023 동아대 기존여자 4등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023-8월 부산지역대학생볼링연합 기존여자 4등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023 동명대 기존여자 3등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2023 동의대 기존여자 3등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2024-2월 부산지역대학생볼링연합 기존여자 3등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2024 동서대 기존여자 1등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2024 부산대 기존여자 3등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2024-8월 부산지역대학생볼링연합 기존여자 1등"/>
<TextView
android:fontFamily="@font/font"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="▶ 추후대회 : 동명대, 부경대, 동의대, 재부"/>
</LinearLayout>
</ScrollView>
이 부분이 수상경력을 담은 ScrollView의 내용이다.
ScrollView는 사용해본적이 없어서 인터넷와 ChatGPT를 사용해서 스크롤뷰 사용 방법을 알아봤다.
- ScrollView는 자식이 1개여야한다. (나의 경우 LinearLayout)
- ScrollView에서 fillViewport="true" 설정을 해주어야한다.
- ScrollView에서 스크롤이 보이지않게 하고 싶으면 android:scrollbar="none" 설정을 준다.
이렇게 해서 내용이 레이아웃 화면을 넘어가면 스크롤로 모든 TextView 내용을 볼 수 있도록 설정했다.
아래처럼 수상경력 부분 오른쪽에 보면 스크롤이 있고, 나는 scrollbar를 none으로 주지 않았다.
이렇게 ScrollView까지 넣어주기 완료!
이제 xml간 서로 넘어가는 intent를 설정해주면된다.
intent 관련 설명은 앞선 포스팅에서도 있으니까 아래 사이트 참고하기!
https://sojung118.tistory.com/4
2. MainActivity.java
package com.example.introducemyself;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity {
private Button btn_bowling;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_bowling=findViewById(R.id.btn_bowling);
btn_bowling.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Intent 객체 생성
Intent intent = new Intent(MainActivity.this,BowlingActivity.class);
startActivity(intent);
}
});
}
}
btn_bowling이라는 id를 가진 버튼을 누르면 BowlingActivity에 설정된 xml로 넘어가기
3. BowlingActivity.java
package com.example.introducemyself;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class BowlingActivity extends AppCompatActivity {
private Button btn_home;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bowling);
btn_home=findViewById(R.id.btn_home);
btn_home.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Intent 객체 생성
Intent intent = new Intent(BowlingActivity.this,MainActivity.class);
startActivity(intent);
}
});
}
}
MainActivity.java와 달라진 부분은 id 할당 부분과 intent 객체 설정 시 변수의 순서밖에 없다!
+ setContentView(R.layout.나타낼 xml화면)
intent는 확실히 쓰다보면 엄청 익숙해질듯..
그리고 여기서 AndroidManifest.xml에 들어가서
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<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.IntroduceMyself"
tools:targetApi="31">
<activity
android:name=".BowlingActivity"
android:exported="false" />
<activity
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>
BowlingActivity.java를 추가해줬으므로 AndroidManifest.xml 파일에도
<activity
android:name=".BowlingActivity"
android:exported="false" />
이 부분을 추가해준다!
[ 실행 화면 ]
'프로젝트' 카테고리의 다른 글
[안드로이드 스튜디오 프로젝트] 자기소개앱_4 (AlertDialog 적용) (1) | 2024.09.09 |
---|---|
[안드로이드 스튜디오 프로젝트] 자기소개앱_3 (DrawerLayout 적용) (7) | 2024.09.06 |
[프로젝트] DB와 연동한 동아리 신청폼 만들기 (1) | 2024.09.05 |
[안드로이드 스튜디오 프로젝트] 자기소개앱.xml (1) | 2024.09.04 |
[안드로이드 스튜디오 프로젝트] 간단한 계산기 만들기 (MainActivity.java) (1) | 2024.08.29 |