###前提・実現したいこと
あるファイルにViewを継承したクラスで記述したデザインを表すためのファイルとメインの色々な動作をさせるために作ったActivityを継承したクラスで記述したファイルがあり、さらに追加でデザインを記述したxmlファイルがあります。
その前提で、メインのファイルからデザインを変化させたいのです。具体的には色や図形を追加したりするということです。
詳しいコードを下記でご覧ください。
※エラーとかの問題はまだなく、方法が知りたいです。
###該当のソースコード
デザインのJavaファイル
Java
1 2import android.content.Context; 3import android.graphics.Canvas; 4import android.graphics.Color; 5import android.graphics.Paint; 6import android.graphics.Path; 7import android.graphics.RectF; 8import android.util.AttributeSet; 9import android.util.Log; 10import android.view.View; 11 12public class Designgame extends View { 13 private Paint p = new Paint(); 14 private Paint p2 = new Paint(); 15 private float ox; 16 private float oy; 17 private float dl; 18 private float dl2; 19 private float dl3; 20 private float dl4; 21 private float dl5; 22 private float dl6; 23 private float c1x; 24 private float c1y; 25 private float c1r; 26 private float c2x; 27 private float c2y; 28 private float c2r; 29 private float c3x; 30 private float c3y; 31 private float c3r; 32 private float c4x; 33 private float c4y; 34 private float c4r; 35 private float ax; 36 private float ay; 37 private float bx; 38 private float by; 39 private float cx; 40 private float cy; 41 private float dx; 42 private float dy; 43 private float ex; 44 private float ey; 45 private float fx; 46 private float fy; 47 private float gx; 48 private float gy; 49 private float hx; 50 private float hy; 51 private float axa; 52 private float axb; 53 private float axc; 54 private float axd; 55 private float axe; 56 private float axf; 57 private float axg; 58 private float axh; 59 private float axi; 60 private float aya; 61 private float ayb; 62 private float ayc; 63 private float cxa; 64 private float cxb; 65 private float cxc; 66 private float cxd; 67 private float cxe; 68 private float cxf; 69 private float cxg; 70 private float cxh; 71 private float cxi; 72 private float cya; 73 private float cyb; 74 private float cyc; 75 private float zax; 76 private float zay; 77 private float zbx; 78 private float zby; 79 private float alpha; 80 private float beta; 81 private float c3a; 82 private float c3b; 83 private float c3c; 84 private float c4a; 85 private float c4b; 86 private float c4c; 87 private float pa1; 88 private float pa2; 89 private float pa3; 90 private float pa4; 91 private float pb1; 92 private float pb2; 93 private float pb3; 94 private float pb4; 95 private float pc1; 96 private float pc2; 97 private float pc3; 98 private float pc4; 99 private float winW; 100 private float winH; 101 102 public float getC1r() { 103 return c1r; 104 } 105 public float getC2r() { 106 return c2r; 107 } 108 public float getC3r() { 109 return c3r; 110 } 111 public float getC4r() { 112 return c4r; 113 } 114 public Designgame(Context context) { 115 super(context, null); 116 } 117 public Designgame(Context context, AttributeSet attrs) { 118 super(context, attrs, R.layout.activity_game); 119 } 120 public Designgame(Context context, AttributeSet attrs, int defStyleAttr) { 121 super(context, attrs, defStyleAttr); 122 } 123 /*public Screen(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 124 super(context, attrs, defStyleAttr, defStyleRes); 125 }*/ 126 protected void onDraw(Canvas c) { 127 super.onDraw(c); 128---省略
xmlファイル
xml
1<?xml version="1.0" encoding="utf-8"?> 2<android.support.percent.PercentFrameLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:gravity="top"> 8 <com.gmail.archerygame.Designgame 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 /> 12 <TextView 13 android:id="@+id/powertext" 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:text="power" 17 app:layout_marginLeftPercent="25%" 18 /> 19 <TextView 20 android:id="@+id/staminatext" 21 android:layout_width="wrap_content" 22 android:layout_height="wrap_content" 23 android:text="stamina" 24 app:layout_marginLeftPercent="25%" 25 app:layout_marginTopPercent="10%" 26 /> 27 <TextView 28 android:id="@+id/timer" 29 android:layout_width="10dp" 30 android:layout_height="10dp" 31 android:text="Timer" 32 android:layout_gravity="right" 33 /> 34 35</android.support.percent.PercentFrameLayout>
操作するメインのファイル
java
1public class Game extends Activity { 2 private Screen sc; 3 private TextView textView; 4 private int winW, winH; 5 private int colchk;//=0; 6 private Toast backinfo; 7 private String LR; 8 private Handler time; 9 private Runnable timer; 10 private int tmtimenum; 11 private int hmtimenum; 12 private int utimenum; 13 private float timenum; 14 private String strtimenum; 15 private int baab; 16 // /* 17 private float tx, ty; 18 private int fingnum; 19 private int pid; 20 private TextView textView1; 21 private TextView textView2; 22 private TextView textView3; 23 private TextView textView4; 24 private TextView showpower; 25 private TextView showstamina; 26 // */ 27 private int vb; 28 private int bchk; 29 private int bgo; 30 private double rpower; 31 private double lpower; 32 private int stamina; 33 private float rectxo, rectxh, rectyo, rectyh; 34 private String stringpower; 35 private String stringstamina; 36 private int perpower; 37 private double spower; 38 private double forspower; 39 private int lingling; 40 private int chklnch; 41 private double ldis; 42 private double rdis; 43 private String Ochk; 44 private String Hchk; 45 private int fpaddinglpower; 46 private int fpaddinglstamina; 47 private int fpaddingbpower; 48 private int fpaddingbstamina; 49 @Override 50 protected void onCreate(Bundle savedInstanceState) { 51 super.onCreate(savedInstanceState); 52 Intent i4 = getIntent(); 53 LR = i4.getStringExtra("LR"); 54 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 55 //setContentView(R.layout.activity_main); 56 //ステータスバー非表示 57 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 58 //タイトルバー非表示 59 requestWindowFeature(Window.FEATURE_NO_TITLE); 60 setNavigationbarHide(this, true); 61 Random rnd = new Random(); 62 WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE); 63 Display dp = wm.getDefaultDisplay(); 64 Point po = new Point(); 65 dp.getSize(po); 66 winW = po.x; 67 winH = po.y; 68 perpower = 20; 69 spower = rnd.nextInt(perpower); 70 forspower = 1000 * (1 / spower); 71 rpower = winW - ((winW * 0.05) + (winW * spower));//右(利き)基準 72 lpower = (winW * 0.25) - (winW * spower);//左(利き)基準 73 stamina = 10 + rnd.nextInt(30);//時間耐久度 74 } 75 public void onResume() { 76 super.onResume(); 77 sc = new Screen(this); 78 tmtimenum = 0; 79 hmtimenum = 0; 80 utimenum = 0; 81 vb = 0;//バイブレーション制御用 82 bchk = 0;//球発射準備 83 bgo = 0;//球発射指示 84 Ochk = ""; 85 Hchk = ""; 86 /*WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE); 87 Display dp = wm.getDefaultDisplay(); 88 Point po = new Point(); 89 dp.getSize(po); 90 winW = po.x; 91 winH = po.y;*/ 92 parts(); 93 } 94 public void parts() { 95 96 97 fpaddinglpower = (int)(winW * 0.25); 98 fpaddinglstamina = (int)(winW * 0.25); 99 //一時的 100 /*FrameLayout fl = new FrameLayout(this); 101 this.setContentView(fl); 102 fl.addView(sc); 103 setContentView(R.layout.activity_game);*/ 104 LayoutInflater factory = LayoutInflater.from(this); 105 View view = factory.inflate(R.layout.activity_game, null); 106 setContentView(view); 107---省略
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/15 12:40
2017/04/15 12:52
2017/04/15 13:09
2017/04/15 13:28
2017/04/15 13:52
2017/04/15 14:02
2017/04/15 14:12
2017/04/15 14:33
2017/04/15 14:38
2017/04/15 14:44
2017/04/15 15:00
2017/04/15 15:09
2017/04/15 15:40
2017/04/15 15:56
2017/04/16 01:41
2017/04/16 02:40