質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

0回答

899閲覧

java レイアウトについて

SouichiHonda

総合スコア6

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/10/09 09:01

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

###発生している問題・エラーメッセージ
範囲内にviewがあるときに、viewのサイズ変更を行うようにしています。
そのとき、中身のtextを新しいサイズに応じて位置を中央表示させたいのですが、うまくいきません。また範囲外にあるときにサイズを元に戻すようにしたいです。

エラーメッセージ

###該当のソースコード

ここにご自身が実行したソースコードを書いてください

package com.lel.monsakun3.tool;

import java.util.Random;

import com.lel.monsakun3.Main_Activity;

import android.graphics.Color;
import android.util.Log;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;

public class Card extends Button implements OnTouchListener {

// void android.view.View.layout(int left, int top, int right, int bottom) // View#getWidthメソッド, getHeightメソッドでサイズを取得 // 単文情報 public String string; // カードの単文 public int structure; // 単文の持つ構造 public String[] object = new String[2]; // 単文の持つオブジェクト public int[] number = new int[2];// 単文の持つ数量 public String[] unit = new String[2];// 単文の持つ量(単位) public int set_flag = 0;// カードをセットしておく public int fixed_flag = 0;// カードを固定する public int invisible_flag = 0;// カードを隠す public int card_num = 0;// カードの番号 // Main型のオブジェクト作成 Main_Activity main = new Main_Activity(); // 文字数 半角32文字 // カードの大きさ(dp指定) public static int height = 85; public static int width = 480; //public int height = 85; public int w=480; // アプリケーションクラス Globals app; // アニメーションのターゲット Card target = this; // 現在のオブジェクトの座標 int pointX; int pointY; // ドラッグ用変数 int offsetX = 0; int offsetY = 0; int centerX; int centerY; boolean move_flag = false; //アニメーション中はタッチで操作できないようにする public Card(Main_Activity context, Globals x) { super(context); // TODO 自動生成されたコンストラクター・スタブ // アプリケーションクラス生成 main = context; app = x; // 自身にtouchリスナーを追加 this.setOnTouchListener(this); } // 以下ドラッグ操作を実現するタッチイベント public boolean onTouch(View v, MotionEvent event) { if (move_flag == false && fixed_flag == 0) { this.bringToFront(); switch (event.getAction()) { // タッチされたときの処理 case MotionEvent.ACTION_DOWN: this.bringToFront(); this.setTextColor(Color.MAGENTA); offsetX = (int) event.getX(); offsetY = (int) event.getY(); break; // タッチが離されたときの処理 case MotionEvent.ACTION_UP: // タッチしたときに固定されているカードであれば外す処理を行う  mainのスペース情報の変更 main.remove_card(this); // カードを固定する処理 fixcard(); if (structure == 999) { this.setTextColor(Color.WHITE); } else { this.setTextColor(Color.BLACK); } break; // タッチしたまま動かしたときの処理 case MotionEvent.ACTION_MOVE: pointX = (int) event.getRawX() - offsetX; pointY = (int) event.getRawY() - offsetY; centerX = pointX + Card.width / 2; centerY = pointY + Card.height / 2; // 画面外にカードが出ないようにするための処理 if (centerX > 0 && centerX < app.screen_size_width && centerY > 0 && centerY < app.screen_size_height) { this.layout(pointX, pointY, pointX + this.getWidth(), pointY + this.getHeight()); } break; } } return false; } // スペースに対してボタンを固定するメソッド // カードの中心が一定の範囲に入るとスペースに固定する @SuppressWarnings("deprecation") public void fixcard() { if (centerX > 4*app.screen_size_width / 7 + Card.width / 5 && centerX < 4*app.screen_size_width / 7 + Card.width - Card.width / 5 && centerY > ( 1+2) * app.screen_size_height / 8 + change_dptopx(Card.height) * 2 / 5 - change_dptopx(30) && centerY < (1+2) * app.screen_size_height / 8 + change_dptopx(Card.height) * 2 / 5 + Card.height - change_dptopx(30)) { if (main.settable(1)) { Log.d("cardset", "????="+change_dptopx(Card.width)); Log.d("cardset", "width="+width); this.layout( 4*1280/7+150, 275, 4*1280/7+230, 313); this.setGravity(Gravity.CENTER);

// this.layout(10, 20, 300, 400);

main.card_set(1, this); Log.v("set", "space=" + 1); } } else if (centerX > 4*app.screen_size_width / 7 + Card.width / 5 && centerX < 4*app.screen_size_width / 7 + Card.width - Card.width / 5 && centerY > ( 2+2) * app.screen_size_height / 8 + change_dptopx(Card.height) * 2 / 5 - change_dptopx(30) && centerY < (2+2) * app.screen_size_height / 8 + change_dptopx(Card.height) * 2 / 5 + Card.height - change_dptopx(30)) { if (main.settable(2)) { Log.d("cardset", "????="+change_dptopx(Card.width)); Log.d("cardset", "width="+width); Log.d("cardset", "width2="+width); this.layout( 4*1280/7, 392, 4*1280/7+160, 472);

/

main.card_set(2, this); Log.v("cardset", "width2="+width); Log.v("set", "space=" + 2); } } else if(centerX > 4*app.screen_size_width / 7 + Card.width / 5 && centerX < 4*app.screen_size_width / 7 + Card.width - Card.width / 5 && centerY > ( 3+2) * app.screen_size_height / 8 + change_dptopx(Card.height) * 2 / 5 - change_dptopx(30) && centerY < (3+2) * app.screen_size_height / 8 + change_dptopx(Card.height) * 2 / 5 + Card.height - change_dptopx(30)) { if (main.settable(3)) { Log.d("cardset", "????="+change_dptopx(Card.width)); Log.d("cardset", "width="+width); this.layout( 4*1280/7, 512, 4*1280/7+Card.width, 592); main.card_set(3, this); Log.v("set", "space=" + 3); } } }

}

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yona

2017/10/09 09:10

不要な記述を削除してください。コードはコード用の記述に修正してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問