Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- function scope
- 곱셈 암호
- arrow function
- 한국정보보호산업협회기자단
- 가명정보처리
- 한국산업인력공단
- 확장 유클리드 알고리즘
- 포너블
- 무료교육
- Writeup
- pwnable.tw
- 덧셈 암호
- 백엔드입문
- package.json
- 백엔드
- 유클리드_알고리즘
- 국가인적자원개발컨소시엄
- 개인정보보호
- 개인정보안전성
- 동적타이핑
- 마감임박
- node.js
- 웹 프레임워크
- 한국정보보호산업협회
- 호이스팅
- 개인정보보호교육
- 개인정보보호위원회
- 모듈러 연산
- package-lock.json
- 디오판투스 알고리즘
Archives
- Today
- Total
짱짱해커가 되고 싶은 나
04-5. 위젯3 본문
프로젝트1
스위치로 시작
좋아하는 안드로이드 버전 선택 -> 해당 버전의 아이콘 이미지
종료 버튼 ( 앱 종료)
처음으로 버튼
<activity_main.xml>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:padding="20dp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="선택을 시작하겠습니까?"
android:textSize="20dp" />
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/switch_check"
android:text="시작함"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="좋아하는 안드로이드 버전은?"
android:id="@+id/text_question"
android:visibility="invisible"
android:textSize="20dp"/>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:id="@+id/rGroup">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rbtn1"
android:text="오레오(8.0)"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rbtn2"
android:text="파이(9.0)"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rbtn3"
android:text="Q(10.0)"/>
</RadioGroup>
<ImageView
android:id="@+id/imageView"
android:layout_width="200dp"
android:layout_height="300dp"
android:visibility="invisible" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:id="@+id/finish"
android:text="종료"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:id="@+id/restart"
android:text="처음으로"/>
</LinearLayout>
<MainActivity.java)
package com.example.widget3;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.TextView;
import org.w3c.dom.Text;
public class MainActivity extends AppCompatActivity {
Switch start;
TextView question;
RadioGroup rGroup;
RadioButton rbtn1, rbtn2, rbtn3;
ImageView imageView;
Button finish, restart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("안드로이드 사진 보기");
start = (Switch)findViewById(R.id.switch_check);
question = (TextView)findViewById(R.id.text_question);
rGroup = (RadioGroup)findViewById(R.id.rGroup);
rbtn1 = (RadioButton)findViewById(R.id.rbtn1);
rbtn2 = (RadioButton)findViewById(R.id.rbtn2);
rbtn3 = (RadioButton)findViewById(R.id.rbtn3);
imageView = (ImageView)findViewById(R.id.imageView);
finish = (Button)findViewById(R.id.finish);
restart = (Button)findViewById(R.id.restart);
start.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
question.setVisibility(View.VISIBLE);
rGroup.setVisibility(View.VISIBLE);
finish.setVisibility(View.VISIBLE);
restart.setVisibility(View.VISIBLE);
}
else{
imageView.setVisibility(View.INVISIBLE);
rGroup.clearCheck();
question.setVisibility(View.INVISIBLE);
rGroup.setVisibility(View.INVISIBLE);
finish.setVisibility(View.INVISIBLE);
restart.setVisibility(View.INVISIBLE);
}
}
});
rGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.rbtn1:
imageView.setImageResource(R.drawable.oreo);
imageView.setVisibility(View.VISIBLE);
break;
case R.id.rbtn2:
imageView.setImageResource(R.drawable.pie);
imageView.setVisibility(View.VISIBLE);
break;
case R.id.rbtn3:
imageView.setImageResource(R.drawable.q);
imageView.setVisibility(View.VISIBLE);
break;
default:
imageView.setVisibility(View.INVISIBLE);
}
}
});
finish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
restart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
start.setChecked(false);
}
});
}
}
< 여기서 주의할 건 스위치 문에서 디폴트로 이미지 뷰를 없애는 걸 해줘야 한다. >
왜냐하면 초기화하는 걸 스위치를 false로 바꾸는걸로 해놨는데 이렇게 되면 스위치에서 이미지를 invisible로 바꾸고 체크를 클리어한다. 그래서 라디오 그룹에서 체크의 변화로도 나온다~ 이렇게 클리어 된 경우도 처리해줘야하기 때문 ^^!
& 스위치 체크 false에서 빼도 됨. 여기서 다 빼고 default에다가 옮겨놓는게 깔꼼할듯
프로젝트2
버튼을 누를 때마다 10도씩 이미지 회전
<acitivity_main.xml>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<android.widget.Button
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_margin="50dp"
android:id="@+id/btn"
android:padding="10dp"
android:text="회전하기"
android:drawableLeft="@mipmap/ic_launcher"
android:drawableRight="@mipmap/ic_launcher"
android:textColor="#000000"
android:background="#808080"/>
<ImageView
android:layout_margin="30dp"
android:layout_width="350dp"
android:layout_height="wrap_content"
android:src="@drawable/flower"
android:id="@+id/imageView"/>
</LinearLayout>
button 양 옆에 이미지를 넣을 때는 drawbleLeft랑 drawbleRight 속성을 이용하면 된다.
<MainActivity.java>
package com.example.widget4;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button btn;
ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("연습문제 4-9");
btn = (Button)findViewById(R.id.btn);
image = (ImageView)findViewById(R.id.imageView);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
image.setRotation(image.getRotation()+10);
}
});
}
}
rotation을 변경할 때 setRotation 같은 경우 더해주는게 아니라 해당하는 각도로 돌리는 것이기 때문에 누를 때마다 각도가 변하려면 현재 로테이션 + 각 으로 사용해야한다.
'모바일' 카테고리의 다른 글
06-1. 시간 관련 위젯 (0) | 2021.02.17 |
---|---|
05-1. 레이아웃 (0) | 2021.02.17 |
04-4. 위젯2 (0) | 2021.02.16 |
04-3. 간단한 계산기 앱 (0) | 2021.02.15 |
04-2. 위젯 (0) | 2021.02.15 |
Comments