お絵かきソフトを開発しています
キャンバス上に絵を描くことができるようになっていますが、こちらをセーブボタンを作り、セーブボタンをタップした際にandroid本体のアルバムに保存できるような処理を実装したいです
2月14日追記
こちらアンサーの追記などを元にコードを編集しなおしましたが、bitmap保存には至りませんでした。
MainActivity
1import android.app.Activity; 2import android.graphics.Color; 3import android.os.Bundle; 4import android.os.CpuUsageInfo; 5import android.support.v7.app.AppCompatActivity; 6import android.view.View; 7import android.view.Window; 8import android.widget.Button; 9import android.widget.CompoundButton; 10import android.widget.Toast; 11import android.widget.ImageButton; 12 13 14 15public class MainActivity extends AppCompatActivity implements View.OnClickListener { 16 private DrawingView drawingView; 17 ImageButton red_button,blue_button,yellow_button,black_button,kesigomu_button,cyan_button,gray_button,green_button; 18 ImageButton orange_button,pink_button,purple_button,kimidori_button,mizuiro_button,hadairo_button; 19 Button hutosa1_button,hutosa2_button,kukei_button; 20 21 22 23 24 @Override 25 protected void onCreate(Bundle savedInstanceState) { 26 super.onCreate(savedInstanceState); 27 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); 28 setContentView(R.layout.activity_main); 29 30 31//線の色指定 32 blue_button= findViewById(R.id.blue_button); 33 red_button= findViewById(R.id.red_button); 34 yellow_button= findViewById(R.id.yellow_button) ; 35 black_button= findViewById(R.id.black_button); 36 kesigomu_button= findViewById(R.id.kesigomu_button); 37 cyan_button= findViewById(R.id.cyan_button); 38 gray_button= findViewById(R.id.gray_button); 39 green_button= findViewById(R.id.green_button); 40 orange_button= findViewById(R.id.orange_button); 41 pink_button= findViewById(R.id.pink_button); 42 purple_button= findViewById(R.id.purple_button); 43 kimidori_button= findViewById(R.id.kimidori_button); 44 mizuiro_button= findViewById(R.id.mizuiro_button); 45 hadairo_button= findViewById(R.id.hadairo_button); 46 47 48 //線の太さ指定 49 hutosa1_button= findViewById(R.id.hutosa1_button); 50 hutosa2_button= findViewById(R.id.hutosa2_button); 51 //矩形処理 52 kukei_button= findViewById(R.id.kukei_button); 53 54 55 blue_button.setOnClickListener(this); 56 red_button.setOnClickListener(this); 57 yellow_button.setOnClickListener(this); 58 black_button.setOnClickListener(this); 59 kesigomu_button.setOnClickListener(this); 60 cyan_button.setOnClickListener(this); 61 gray_button.setOnClickListener(this); 62 green_button.setOnClickListener(this); 63 orange_button.setOnClickListener(this); 64 pink_button.setOnClickListener(this); 65 purple_button.setOnClickListener(this); 66 kimidori_button.setOnClickListener(this); 67 mizuiro_button.setOnClickListener(this); 68 hadairo_button.setOnClickListener(this); 69 70 hutosa1_button.setOnClickListener(this); 71 hutosa2_button.setOnClickListener(this); 72 kukei_button.setOnClickListener(this); 73 74 75 76 77 78 this.drawingView = findViewById(R.id.drawing_view); 79 80 findViewById(R.id.deletebutton).setOnClickListener(deleteDrawing); 81 82 } 83 View.OnClickListener deleteDrawing = new View.OnClickListener(){ 84 @Override 85 public void onClick(View view){ 86 drawingView.delete(); 87 } 88 }; 89 90 91 public void onClick(View v){ 92 switch(v.getId()){ 93 //線の色指定 94 case R.id.blue_button: 95 drawingView.setPen(Color.BLUE); 96 Toast.makeText(this,"blue",Toast.LENGTH_SHORT).show(); 97 break; 98 case R.id.red_button: 99 drawingView.setPen(Color.RED); 100 Toast.makeText(this,"red",Toast.LENGTH_SHORT).show(); 101 break; 102 case R.id.yellow_button: 103 drawingView.setPen(Color.YELLOW); 104 Toast.makeText(this,"yellow",Toast.LENGTH_SHORT).show(); 105 break; 106 case R.id.black_button: 107 drawingView.setPen(Color.BLACK); 108 Toast.makeText(this,"black",Toast.LENGTH_SHORT).show(); 109 break; 110 case R.id.kesigomu_button: 111 drawingView.setPen(Color.WHITE); 112 drawingView.setStrokeWidth(40); 113 Toast.makeText(this,"消しゴム",Toast.LENGTH_SHORT).show(); 114 break; 115 case R.id.cyan_button: 116 drawingView.setPen(Color.CYAN); 117 Toast.makeText(this,"Cyan",Toast.LENGTH_SHORT).show(); 118 break; 119 case R.id.gray_button: 120 drawingView.setPen(Color.GRAY); 121 Toast.makeText(this,"gray",Toast.LENGTH_SHORT).show(); 122 break; 123 case R.id.green_button: 124 drawingView.setPen(Color.GREEN); 125 Toast.makeText(this,"green",Toast.LENGTH_SHORT).show(); 126 break; 127 case R.id.orange_button: 128 drawingView.setPen(Color.rgb(255,165,0)); 129 Toast.makeText(this,"orange",Toast.LENGTH_SHORT).show(); 130 break; 131 case R.id.pink_button: 132 drawingView.setPen(Color.rgb(255,192,187)); 133 Toast.makeText(this,"pink",Toast.LENGTH_SHORT).show(); 134 break; 135 case R.id.purple_button: 136 drawingView.setPen(Color.rgb(128,0,128)); 137 Toast.makeText(this,"purple",Toast.LENGTH_SHORT).show(); 138 break; 139 case R.id.kimidori_button: 140 drawingView.setPen(Color.rgb(85,107,47)); 141 Toast.makeText(this,"darkgreen",Toast.LENGTH_SHORT).show(); 142 break; 143 case R.id.mizuiro_button: 144 drawingView.setPen(Color.GREEN); 145 Toast.makeText(this,"green",Toast.LENGTH_SHORT).show(); 146 break; 147 case R.id.hadairo_button: 148 drawingView.setPen(Color.rgb(245,208,169)); 149 Toast.makeText(this,"hadairo",Toast.LENGTH_SHORT).show(); 150 break; 151 152 //線の太さ指定 153 case R.id.hutosa1_button: 154 drawingView.setStrokeWidth(40); 155 Toast.makeText(this,"ペン先 1×1",Toast.LENGTH_SHORT).show(); 156 break; 157 case R.id.hutosa2_button: 158 drawingView.setStrokeWidth(120); 159 Toast.makeText(this,"ペン先 3×3",Toast.LENGTH_SHORT).show(); 160 break; 161 case R.id.kukei_button: 162 drawingView.setStrokeWidth(200); 163 Toast.makeText(this,"矩形",Toast.LENGTH_SHORT).show(); 164 165 } 166 } 167 168 @Override 169 public void onPointerCaptureChanged(boolean hasCapture) { 170 171 } 172 173} 174
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/13 11:06
2019/02/13 13:44
2019/02/13 17:55 編集
2019/02/13 18:56