1. Graphics_01


package org.android.soldesk.graphics_01;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.v4.print.PrintHelper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Graphics_01Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_graphics_01);

MyView vv = new MyView(this);
setContentView(vv);
}

private class MyView extends View {
public MyView(Context context){
super(context);
setBackgroundColor(Color.argb(88,120,120,120));

}

@Override
protected void onDraw(Canvas canvas) {

Paint print = new Paint();
print.setColor(Color.parseColor("#ffff0000"));
canvas.drawLine(20,50,10,80,print);
Paint printa = new Paint();
printa.setColor(Color.parseColor("#ffffffff"));
canvas.drawRect(10,110,150,150,printa);
Paint printb = new Paint();
printb.setColor(Color.parseColor("#ffff00ff"));
canvas.drawCircle(50, 250, 50,printb);

canvas.drawText("글자도 그릴수 있습니다.", 20, 300, print);

}
}
}

<java>




2. Graphics_02


package org.android.soldesk.graphics_02;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Graphics_02Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// setContentView(R.layout.activity_graphics_02);

MyView vv = new MyView(this);
setContentView(vv);
}

private class MyView extends View {
public MyView(Context context) {
super(context);
setBackgroundColor(Color.argb(90,100,250,100));
}

@Override
protected void onDraw(Canvas canvas)
{
Paint paint = new Paint();

paint.setColor(Color.BLUE);
canvas.drawRoundRect(new RectF(10,10,110,110),5,5,paint);
canvas.drawOval(new RectF(150,10,250,110),paint);

paint.setColor(Color.RED);
canvas.drawArc(new RectF(250,120,350,220),45,270,true,paint);

paint.setColor(Color.GREEN);
float[] pts = {10,250,100,270,100,270,20,290,20,290,120,300};

paint.setStrokeWidth(20);
canvas.drawLines(pts,paint);
}
}
}

<java>




3. Graphics_03


package org.android.soldesk.graphics_03;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Graphics_03Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_graphics_03);

setContentView(new MyView(this));

}

private class MyView extends View {
private Paint mPaint,mFramePaint;
private boolean mUseCenters;
private RectF mBigOval;
private float mStart,mSweep;

private static final float SWEEP_INC = 2;
private static final float START_INC = 15;

public MyView(Context context) {
super(context);

mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setStrokeWidth(20);
mPaint.setColor(0x88FF0000);

mFramePaint = new Paint();
mFramePaint.setAntiAlias(true);
mFramePaint.setStyle(Paint.Style.STROKE);
mFramePaint.setStrokeWidth(10);
mFramePaint.setColor(0x8800ff00);
mBigOval = new RectF(40,10,280,250);
}

@Override
protected void onDraw(Canvas canvas)
{
canvas.drawColor(Color.GREEN);
canvas.drawRect(mBigOval,mFramePaint);
canvas.drawArc(mBigOval,mStart,mSweep,false,mPaint);
//mStart 각도에서 mSweep 만큼의 원호를 그린다

mSweep += SWEEP_INC;

if (mSweep > 360) {
mSweep -= 360;
mStart += START_INC;

if (mStart >= 360){
mStart -= 360;
}
}
invalidate(); // 다시 onDraw() 가 호출 되도록 한다
}
}
}

<java>




4. Graphics_04


package org.android.soldesk.graphics_04;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Graphics_04Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_graphics_04);

MyView vv = new MyView(this);
setContentView(vv);

}

private class MyView extends View{
public MyView(Context context){
super(context);
setBackgroundColor(Color.argb(255,0,255,0));
}

@Override

protected void onDraw(Canvas canvas)
{
Paint paint = new Paint();

paint.setColor(Color.RED);
paint.setAntiAlias(true);

canvas.drawText("안티 에일리어싱 ON ",20,100,paint);
canvas.drawOval(new RectF(20,110,120,250),paint);

paint.setAntiAlias(false);

canvas.drawText("안티 에일리어싱 OFFF ",220,100,paint);
canvas.drawOval(new RectF(220,100,350,250),paint);
}
}
}

<java>




5. Graphics_font


package org.android.soldesk.graphics_font;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Graphics_fontActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_graphics_font);

MyView vv = new MyView(this);
setContentView(vv);
}

private class MyView extends View {
public MyView(Context context) {
super(context);
setBackgroundColor(Color.CYAN);
}
@Override
protected void onDraw(Canvas canvas)
{
Paint paint = new Paint();
paint.setAntiAlias(true);

paint.setTextSize(25);

Typeface tt;

tt = Typeface.create(Typeface.DEFAULT,Typeface.NORMAL);
paint.setTypeface(tt);
canvas.drawText("DEFAULT 폰트",20,100,paint);

tt = Typeface.create(Typeface.DEFAULT_BOLD,Typeface.NORMAL);
paint.setTypeface(tt);
canvas.drawText("DEFAULT_BOLD 폰트",20,150,paint);

tt = Typeface.create(Typeface.MONOSPACE,Typeface.NORMAL);
paint.setTypeface(tt);
canvas.drawText("MONOSPACE 폰트",20,200,paint);

tt = Typeface.create(Typeface.SERIF,Typeface.NORMAL);
paint.setTypeface(tt);
canvas.drawText("SERIF 폰트",20,250,paint);

tt = Typeface.create(Typeface.SANS_SERIF,Typeface.NORMAL);
paint.setTypeface(tt);
canvas.drawText("SANS_SERIF 폰트",20,300,paint);
}
}
}

<java>




6. Graphics_font01


package org.android.soldesk.graphics_font01;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Graphics_font01Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_graphics_font01);

MyView vv = new MyView(this);
setContentView(vv);
}

private class MyView extends View{
public MyView(Context context) {
super(context);

setBackgroundColor(Color.YELLOW);
}

@Override

protected void onDraw(Canvas canvas)
{
Typeface myFont, myFonta, myFontc;
Paint paint = new Paint();
Paint painta = new Paint();
Paint paintc = new Paint();
paint.setAntiAlias(true);
myFont = Typeface.createFromAsset(getContext().getAssets(),"aa.ttf");

paint.setTypeface(myFont);
paint.setTextSize(30);
myFonta = Typeface.createFromAsset(getContext().getAssets(),"bbb.ttf");

painta.setTypeface(myFonta);
painta.setTextSize(30);

myFontc = Typeface.createFromAsset(getContext().getAssets(),"cc.ttf");

paintc.setTypeface(myFontc);
paintc.setTextSize(30);

canvas.drawText("This is a New Font !!!!",20,200,paint);
canvas.drawText("Have Fun !!!!",20,300,paint);
canvas.drawText("This is a New Font !!!!",20,400,painta);
canvas.drawText("Have Fun !!!!",20,500,paintc);
}
}
}

<java>




7. Graphics_path


package org.android.soldesk.graphics_path;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Graphics_pathActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_graphics_path);

MyView vv = new MyView(this);

setContentView(vv);
}

private class MyView extends View {
public MyView(Context context) {
super(context);
setBackgroundColor(Color.YELLOW);
}
@Override
protected void onDraw(Canvas canvas)
{
Path path = new Path();
Paint paint = new Paint();

paint.setStyle(Paint.Style.STROKE);

path.moveTo(30,120);
path.lineTo(120,220);
path.cubicTo(170,50,220,330,330,220);
// Bezier curves(베지어 곡선을 그린다)

paint.setColor(Color.BLUE);
canvas.drawPath(path,paint);

paint.setStyle(Paint.Style.FILL);
paint.setTextSize(50);
canvas.drawTextOnPath("This is a Test!!!", path, 0, 0, paint);
}
}
}

<java>




8. Image_01


package org.android.soldesk.image_01;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Image_01Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_image_01);

MyView vv = new MyView(this);
setContentView(vv);
}

private class MyView extends View {
public MyView(Context context) {
super(context);
setBackgroundColor(Color.YELLOW);
}
@Override
protected void onDraw(Canvas canvas)
{
Paint paint = new Paint();
Bitmap bb = BitmapFactory.decodeResource(getResources(),R.drawable.b);

canvas.drawBitmap(bb, 20, 50, null);
}
}
}

<java>




9. RandomGrapcis_01


package org.android.soldesk.randomgrapcis_01;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;

public class RandomGrapcis_01Activity extends AppCompatActivity {
private MyView mMyView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_random_grapcis_01);
mMyView =(MyView)findViewById(R.id.myview);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
public void redraw(View v){mMyView.invalidate();}
}

<java>


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
android:id="@+id/linearLayout"
tools:context="org.android.soldesk.randomgrapcis_01.RandomGrapcis_01Activity">

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="redraw"
android:text="다시 그리려면 클릭" />

<view
android:id="@+id/myview"
class="org.android.soldesk.randomgrapcis_01.MyView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>

<xml>


package org.android.soldesk.randomgrapcis_01;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

import java.util.Random;

/**
* Created by soldesk on 2017-03-27.
*/

public class MyView extends View {
private Paint[] mForegrounds={makePaint(Color.BLACK),
makePaint(Color.BLUE),makePaint(Color.YELLOW),makePaint(Color.RED),
makePaint(Color.parseColor("#900066FF"))
};
private static Random r = new Random();

private Paint makePaint(int color) {
Paint p = new Paint();
p.setColor(color);
return (p);
}

public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public MyView(Context context) {
super(context);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.GREEN);
int width=getWidth();
int height=getHeight();
for(int i=1;i<30;i++){
float x=r.nextInt(width);
float y=r.nextInt(height);
float radius=r.nextInt(100);
Paint circleColor=mForegrounds[r.nextInt(mForegrounds.length)];
canvas.drawCircle(x,y,radius,circleColor);
}
for(int i=1;i<30;i++){
float x=r.nextInt(width);
float y=r.nextInt(height);
float xx=r.nextInt(width);
float yy=r.nextInt(height);
Paint circleColor=mForegrounds[r.nextInt(mForegrounds.length)];
canvas.drawRect(x,y,xx,yy,circleColor);
}

}

}

<MyView.java>


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/menu_settings"/>
</menu>

<main.xml>


<resources>
<string name="app_name">RandomGrapcis_01</string>
<string name="menu_settings">LDM</string>
</resources>

<stringxml>




10. MyPhotoshop


package org.android.soldesk.myphotoshop;

import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MyPhotoshopActivity extends AppCompatActivity {

private ImageView img;
private Bitmap bmp;
private Bitmap output;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_photoshop);

img = (ImageView) findViewById(R.id.imageView01);

BitmapDrawable abmp = (BitmapDrawable) img.getDrawable();

bmp = abmp.getBitmap();
}

public void gray(View view) {
output = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), bmp.getConfig());

for (int i = 0; i < bmp.getWidth(); i++) {
for (int j = 0; j < bmp.getHeight(); j++) {
int p = bmp.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);

r = g = b = (int) ((r + g + b) / 3.0);
output.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
img.setImageBitmap(output);
}

public void brightup(View view) {
output = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), bmp.getConfig());
for (int i = 0; i < bmp.getWidth(); i++) {
for (int j = 0; j < bmp.getHeight(); j++) {
int p = bmp.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);

r += 50;
g += 50;
b += 50;

if (r > 255) r = 255;
if (g > 255) g = 255;
if (b > 255) b = 255;
output.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
img.setImageBitmap(output);
}

public void brightdown(View view) {
output = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), bmp.getConfig());

for (int i = 0; i < bmp.getWidth(); i++) {
for (int j = 0; j < bmp.getHeight(); j++) {
int p = bmp.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);

r -= 50;
g -= 50;
b -= 50;

if (r < 0) r = 0;
if (g < 0) g = 0;
if (b < 0) b = 0;

output.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
img.setImageBitmap(output);
}
public void reverse(View view) {
output = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), bmp.getConfig());

for (int i = 0; i < bmp.getWidth(); i++) {
for (int j = 0; j < bmp.getHeight(); j++) {
int p = bmp.getPixel(i, j);
int r = Color.red(p);
int g = Color.green(p);
int b = Color.blue(p);

r = 255 - r;
g = 255 - g;
b = 255 - b;

output.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b));
}
}
img.setImageBitmap(output);
}
}

<java>


<?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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="org.android.soldesk.myphotoshop.MyPhotoshopActivity">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button01"
android:layout_alignLeft="@+id/imageView01"
android:layout_alignParentTop="true"
android:layout_marginTop="21dp"
android:onClick="gray"
android:text="gray"
/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button03"
android:layout_alignBaseline="@+id/button01"
android:layout_alignBottom="@+id/button01"
android:layout_toRightOf="@+id/button01"
android:onClick="brightup"
android:text="B+"
/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button02"
android:layout_alignBaseline="@+id/button03"
android:layout_alignBottom="@+id/button03"
android:layout_toRightOf="@+id/button03"
android:onClick="brightdown"
android:text="B-"
/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button04"
android:layout_alignBaseline="@+id/button02"
android:layout_alignBottom="@+id/button02"
android:layout_toRightOf="@+id/button02"
android:onClick="reverse"
android:text="Reverse"

/>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView01"
android:layout_alignParentLeft="true"
android:layout_below="@+id/button01"
android:layout_marginTop="22dp"
android:src="@drawable/d"
/>
</RelativeLayout>

<xml>


<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_horizontal_margin" >16dp</dimen>
<dimen name="activity_vertical_margin" >16dp</dimen>
</resources>

<dimens.xml>


+ Recent posts