您的位置:首页 > 移动开发 > Android开发

灰阶设置demoactivity

2015-06-26 09:45 507 查看
import java.util.ArrayList;

import java.util.List;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.app.KeyguardManager;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.os.PowerManager;

import android.os.PowerManager.WakeLock;

import android.util.Log;

import android.view.Display;

import android.view.KeyEvent;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.Window;

import android.view.WindowManager;

import android.view.inputmethod.InputMethodManager;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemSelectedListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ImageButton;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.Spinner;

import android.widget.Toast;

public class DrawPaintMainActivity extends Activity {

protected static final String tag = "DrawPaint";
private DrawCG mDrawCG;
private ImageView imgView;
private EditText r1 = null;
private EditText g1 = null;
private EditText b1 = null;
private Button paintButton = null;
private Button blackButton = null;
private Button whiteButton = null;
private ImageButton Left = null;
private ImageButton Right = null;
private EditText huiJieText = null;

private LinearLayout toplinear;
private LinearLayout bottomLinear;
private LinearLayout choseLayout;
private LinearLayout imageLayout;
private long exitTime = 0;
private static PowerManager pManager = null;
public static PowerManager.WakeLock wLock = null;
private KeyguardManager kManager = null;

@SuppressWarnings("deprecation")
public static KeyguardManager.KeyguardLock kLock = null;

private Spinner spinner = null;
private List<String> list = new ArrayList<String>();
int screenWidth;
int screenHeight;
boolean FlagOne;
boolean FlagTwo;
boolean FlagThree;

int r;

public void init() {
// 获取手机窗口的大小
WindowManager wm = getWindowManager();
Display display = wm.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();
Log.e(tag, "screenwidth------->" + screenWidth);
Log.e(tag, "screenheight----->" + screenHeight);

imgView = (ImageView) findViewById(R.id.imgView);
mDrawCG = new DrawCG(DrawPaintMainActivity.this, screenWidth,
screenHeight);
this.r1 = (EditText) findViewById(R.id.r1);
this.g1 = (EditText) findViewById(R.id.g1);
this.b1 = (EditText) findViewById(R.id.b1);

this.paintButton = (Button) findViewById(R.id.paint);
this.toplinear = (LinearLayout) findViewById(R.id.toplinearlayout);
this.bottomLinear = (LinearLayout) findViewById(R.id.bottomlinearlayout);
this.choseLayout = (LinearLayout) findViewById(R.id.sejielayout);
this.imageLayout = (LinearLayout) findViewById(R.id.imagelayout);

this.blackButton = (Button) findViewById(R.id.black);
this.whiteButton = (Button) findViewById(R.id.white);
this.spinner = (Spinner) findViewById(R.id.spinner1);

this.Left = (ImageButton) findViewById(R.id.imageButtonleft);
this.Right = (ImageButton) findViewById(R.id.imageButtonright);
this.huiJieText = (EditText) findViewById(R.id.huijieedit);

list.add("0");
list.add("64灰阶");
list.add("256灰阶");
list.add("外围白,中心黑");
list.add("外围白,中心灰");
list.add("外围灰,中心白");
list.add("外围灰,中心黑");

}

private void hidden() {
// TODO Auto-generated method stub
toplinear.setVisibility(View.GONE);
bottomLinear.setVisibility(View.GONE);
choseLayout.setVisibility(View.GONE);
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}

public void getNoLock() {
// TODO Auto-generated method stub
Log.e(tag, "wakeup  and getKeyGuard");
wakeUp();
getKeyGuard();
}

@SuppressWarnings("deprecation")
private void getKeyGuard() {
// TODO Auto-generated method stub
kManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
if (kManager.inKeyguardRestrictedInputMode()) {
kLock = kManager.newKeyguardLock(tag);
kLock.disableKeyguard();
} else {
}
}

@SuppressWarnings("deprecation")
private void wakeUp() {
// TODO Auto-generated method stub
pManager = (PowerManager) getSystemService(POWER_SERVICE);

wLock = pManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.SCREEN_BRIGHT_WAKE_LOCK
| PowerManager.ON_AFTER_RELEASE | PowerManager.FULL_WAKE_LOCK,
"wakeLock");

wLock.acquire();

}

@SuppressLint("InlinedApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 无标题设置
requestWindowFeature(Window.FEATURE_NO_TITLE);

// 定义全屏参数
int flag = WindowManager.LayoutParams.FLAG_FULLSCREEN;
// 获得当前窗体对象
Window window = DrawPaintMainActivity.this.getWindow();
// 设置当前窗体为全屏显示
window.setFlags(flag, flag); 

// //启动log日志服务

// startService(new Intent(getApplicationContext(), LogService.class));
getNoLock();
/* 全屏 * */
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

setContentView(R.layout.test);

init();
// adpater对象
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, list);
arrayAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// 设置显示的数据
spinner.setAdapter(arrayAdapter);
Left.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (FlagOne) {
int k = Integer.parseInt(huiJieText.getText().toString());
k--;
if (k <1) {
k =64;
// Log.e(tag, "当超出范围时间K的值是:" + k+", 是一个无效值");
Toast.makeText(getApplicationContext(),
"64灰阶测试----请输入1-64之间的数值", Toast.LENGTH_SHORT)
.show();
}else {

huiJieText.setText(String.valueOf(k));
hidden();
imgView.setImageBitmap(mDrawCG.Onehuijie(k, k, k));
Toast.makeText(getApplicationContext(),
"当前执行的是64灰阶中的第" + k + "灰阶", Toast.LENGTH_SHORT)
.show();
}

}
if (FlagTwo) {
int k = Integer.parseInt(huiJieText.getText().toString());
k--;

if (k <= 0) {
k = 0;
}
Log.e(tag, "256灰阶K的值:--->" + k);
huiJieText.setText(String.valueOf(k));
hidden();
imgView.setImageBitmap(mDrawCG.paintBitmap(k, k, k));
// FlagTwo = false ;
Toast.makeText(getApplicationContext(),
"当前执行的是255灰阶中的第" + k + "灰阶", Toast.LENGTH_SHORT)
.show();

}

}
});
Right.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (FlagOne) {
int k = Integer.parseInt(huiJieText.getText().toString());
k++;

if (k > 64) {
k = 64;
Toast.makeText(getApplicationContext(), "请输入1-64之间的数值",
Toast.LENGTH_SHORT).show();

}

Log.e(tag, "64灰阶K的值:--->" + k);
huiJieText.setText(String.valueOf(k));
hidden();
imgView.setImageBitmap(mDrawCG.Onehuijie(k, k, k));
Toast.makeText(getApplicationContext(),
"当前执行的是64灰阶中的第" + k + "灰阶", Toast.LENGTH_SHORT)
.show();

}

if (FlagTwo) {
int k = Integer.parseInt(huiJieText.getText().toString());
k++;

if (k >= 254) {
k = 255;
}
Log.e(tag, "256灰阶K的值:--->" + k);
huiJieText.setText(String.valueOf(k));
hidden();
imgView.setImageBitmap(mDrawCG.paintBitmap(k, k, k));
// FlagTwo = false ;
Toast.makeText(getApplicationContext(),
"当前执行的是255灰阶中的第" + k + "灰阶", Toast.LENGTH_SHORT)
.show();
}

}
});

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long id) {
// TODO Auto-generated method stub
Log.e(tag, "当前的选择是 :" + arrayAdapter.getItem(position));
arg0.setVisibility(View.VISIBLE);
Toast.makeText(getApplicationContext(),
"选择的灰阶" + id + "内容是:" + arrayAdapter.getItem(position),
Toast.LENGTH_SHORT).show();

if (id == 1) {
// 64灰阶
Log.e(tag, "64huijie选择");
FlagOne = true;
FlagTwo = false;
huiJieText.setText("0");

}
if (id == 2) {
// 256灰阶
Log.e(tag, "256huijie选择");
FlagTwo = true;
FlagOne = false;
huiJieText.setText("0");
// hidden();
// int k = 0;
// imgView.setImageBitmap(mDrawCG.paintBitmap(k, k, k));
}

if (id == 3) {
// 外围白,中心黑
Log.e(tag, "外围白,中心黑chose");
hidden();
imgView.setImageBitmap(mDrawCG.BB(screenWidth,
screenHeight, screenWidth, screenHeight));

}

if (id == 4) {
// 外围白,中心灰色
Log.e(tag, "外围白,中心灰色chose");
hidden();
imgView.setImageBitmap(mDrawCG.Bh(screenWidth,
screenHeight, screenWidth, screenHeight));

}
if (id == 5) {
// 外围白,中心灰色
Log.e(tag, "外围灰色,中心白色chose");
hidden();
imgView.setImageBitmap(mDrawCG.BJ(screenWidth,
screenHeight, screenWidth, screenHeight));

}
if (id == 6) {
// 外围白,中心灰色
Log.e(tag, "外围灰色,中心 黑色chose");
hidden();
imgView.setImageBitmap(mDrawCG.BK(screenWidth,
screenHeight, screenWidth, screenHeight));

}

}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub

}
});

paintButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/*
* 这里缺少对三个值是否是空进行判断, 如果出现空,可能会出现报错的现象 *
*/

r = Integer.parseInt(r1.getText().toString());
int g = Integer.parseInt(g1.getText().toString());
int b = Integer.parseInt(b1.getText().toString());
Log.e(tag, "r的值" + r);
Log.e(tag, "gi的值" + g);
Log.e(tag, "bi的值" + b);

if ((r > 255 | r < 0) | (g > 255 | g < 0) | (b > 255 | b < 0)) {
Toast.makeText(DrawPaintMainActivity.this,
"该填充色板是255色阶,请输入0~255之间的数值", Toast.LENGTH_SHORT)
.show();
} else {
hidden();
// 执行画图
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
imgView.setImageBitmap(mDrawCG.paintBitmap(r, g, b));
}
}
});

blackButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
hidden();
imgView.setImageBitmap(mDrawCG.drawBlack());
}
});

whiteButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
hidden();
imgView.setImageBitmap(mDrawCG.drawWhite());
}
});
// imageLayout.setOnTouchListener(this);
}

// 按钮事件
public void doCreateLine(View view) {
hidden();
imgView.setImageBitmap(mDrawCG.drawRed());
}

public void doCreateTriangle(View view) {
hidden();
imgView.setImageBitmap(mDrawCG.drawBlue());
}

public void doCreateRect(View view) {
hidden();
imgView.setImageBitmap(mDrawCG.drawGreen());
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
/** 这里增加back 的作用 */

if (keyCode == KeyEvent.KEYCODE_BACK) {

exit();
return false;
}
return super.onKeyDown(keyCode, event);

}

private void exit() {
// TODO Auto-generated method stub
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(getApplicationContext(), "快速双击返回两次可退出",
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
toplinear.setVisibility(View.VISIBLE);
bottomLinear.setVisibility(View.VISIBLE);
choseLayout.setVisibility(View.VISIBLE);
} else {
finish();
System.exit(0);
}
}

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
wLock.release();

super.onDestroy();
}

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android paint