【发布时间】:2019-02-18 17:04:59
【问题描述】:
我正在尝试制作一个程序,其中有 3 个图像视图、2 个名为翻转和旋转的按钮以及一个方向键。我还没有弄清楚如何保存点击了哪个imageview,所以目前只有一个特定的作品。
这是我的 mainactivity.java:
package com.mdadi.animals;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements
View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onClick(View v) {
ImageView cat = findViewById(R.id.cat);
int tenDpAsPx = (int)
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10,
getResources().getDisplayMetrics());
switch (v.getId()) {
case R.id.bird:
findViewById(R.id.bird_desc).setVisibility(View.VISIBLE);
//Cat & Dog TextViews set to invisible
findViewById(R.id.cat_desc).setVisibility(View.INVISIBLE);
findViewById(R.id.dog_desc).setVisibility(View.INVISIBLE);
break;
case R.id.cat:
findViewById(R.id.cat_desc).setVisibility(View.VISIBLE);
//Bird & Dog TextViews set to invisible
findViewById(R.id.bird_desc).setVisibility(View.INVISIBLE);
findViewById(R.id.dog_desc).setVisibility(View.INVISIBLE);
break;
case R.id.dog:
findViewById(R.id.dog_desc).setVisibility(View.VISIBLE);
//Bird & Cat TextViews set to invisible
findViewById(R.id.bird_desc).setVisibility(View.INVISIBLE);
findViewById(R.id.cat_desc).setVisibility(View.INVISIBLE);
break;
default:
break;
}
//Check which button is clicked and execute relevant code
switch (v.getId()) {
case R.id.centerBtn: //Reset ImgView translation to original position
cat.setTranslationX(0);
cat.setTranslationY(0);
break;
case R.id.upArrow: //Move ImgView up ^
cat.setTranslationY(cat.getTranslationY() - tenDpAsPx);
break;
case R.id.downArrow: //Move ImgView down v
cat.setTranslationY(cat.getTranslationY() + tenDpAsPx);
break;
case R.id.leftArrow: //Move ImgView to the left <-
cat.setTranslationX(cat.getTranslationX() - tenDpAsPx);
break;
case R.id.rightArrow: //Move ImgView to the right ->
cat.setTranslationX(cat.getTranslationX() + tenDpAsPx);
break;
case R.id.rotateBtn: //Rotate ImgView 90 degrees clockwise
cat.setRotation(cat.getRotation() + 90);
break;
case R.id.flipBtn: //Flip ImgView about its y axis (horizontally)
cat.setRotationY(cat.getRotationY() + 180);
break;
default:
break;
}
}
}
activity_main xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="16dp"
android:paddingEnd="16dp"
tools:context=".MainActivity">
<Button
android:id="@+id/rotateBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:onClick="onClick"
android:text="@string/rotate_button" />
<Button
android:id="@+id/flipBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_toEndOf="@+id/rotateBtn"
android:onClick="onClick"
android:text="@string/flip_button" />
<ImageButton
android:id="@+id/centerBtn"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_above="@id/downArrow"
android:layout_toStartOf="@id/rightArrow"
android:background="@android:color/transparent"
android:onClick="onClick"
android:src="@drawable/ic_filter_center_focus_black_24dp" />
<ImageButton
android:id="@+id/leftArrow"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp"
android:layout_toStartOf="@+id/centerBtn"
android:background="@android:color/transparent"
android:onClick="onClick"
android:src="@drawable/ic_arrow_back_black_24dp" />
<ImageButton
android:id="@+id/rightArrow"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp"
android:background="@android:color/transparent"
android:onClick="onClick"
android:src="@drawable/ic_arrow_forward_black_24dp" />
<ImageButton
android:id="@+id/upArrow"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_above="@+id/centerBtn"
android:layout_alignParentEnd="true"
android:layout_marginEnd="35dp"
android:background="@android:color/transparent"
android:onClick="onClick"
android:src="@drawable/ic_arrow_upward_black_24dp" />
<ImageButton
android:id="@+id/downArrow"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="35dp"
android:layout_marginBottom="15dp"
android:background="@android:color/transparent"
android:onClick="onClick"
android:src="@drawable/ic_arrow_downward_black_24dp" />
<ImageView
android:id="@+id/bird"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="100dp"
android:onClick="onClick"
android:src="@drawable/bird" />
<ImageView
android:id="@+id/cat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/bird"
android:layout_marginBottom="100dp"
android:onClick="onClick"
android:src="@drawable/cat" />
<ImageView
android:id="@+id/dog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/cat"
android:onClick="onClick"
android:src="@drawable/dog" />
<TextView
android:id="@+id/bird_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/bird"
android:text="@string/bird"
android:visibility="invisible"/>
<TextView
android:id="@+id/cat_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/cat"
android:layout_below="@+id/bird"
android:text="@string/cat"
android:visibility="invisible"/>
<TextView
android:id="@+id/dog_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/dog"
android:layout_below="@+id/cat"
android:text="@string/dog"
android:visibility="invisible"/>
</RelativeLayout>
我将如何保存点击了哪个 imgview?
【问题讨论】:
标签: android android-layout android-view