app推广:

     一.基本情况

      我们把推广和调研都放在了一起,主要是调研,主要通过调查问卷和直接访问的方式,让调查的人能够看到我们app的主要功能,

然后做出评价和对此改善的意见。调研推广主要通过QQ,微信和微博的群发功能和发表链接,让有兴趣的人参与进我们的调查。基本

情况如下图所示。

二.问卷和访问分析

      通过调查问卷和直接访问我们得知调查的对象主要是广东省的在校大学生。超过一半的人觉得小学生可以用app的方式做数学题目。其余的

都是中立和反对的意见。总的来说四则运算app还是挺有市场前景的。对于出题的要超过半数的人认为要出不同难度的题目和生成不同类型和范

围的数给学生是算术题目的核心考虑问题。少部分觉得还需要加其他条件,比如阶乘等特殊条件运算。

      在辅助功能方面。一半的人认为要加计算器的功能,其余建议更换皮肤等。对于我们app的初略评价,从五分为总分的情况看,调查出来的

平均分为4.14,看来调查人员对我们的app还是蛮有信心的。

       以下是问卷截图。

                                           1                                                                                       2                                    

                                              3                                                                                            4  

                                                                                                                                   

三.总结

      总的来说,如果要进入应用市场还是有一定的距离。因为还有需要算术方面的功能细节需要考虑。此外还有辅助功能,如果设计比较好看的

界面,把娱乐和做题结合吸引小学生是我们接下来要考虑的最主要的问题。推广的过程艰辛,不过用户还是挺期待的,愿接下来我们团队能够继

续完善成功发布在应用市场。

主要代码

    按照老师发的极简github项目创建与提交链接做到第五步就卡住了,问题一些同学以及上网查了也不成功,所以只能上传代码了,等明天

看教程再放上github。

package com.example.operation;
import mehdi.sakout.fancybuttons.FancyButton;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem; public class About extends Activity{ @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.aboutlayout); }
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater=new MenuInflater(this);
inflater.inflate(R.menu.main, menu);
getMenuInflater().inflate(R.menu.main, menu); ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true); return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,MainActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break;
case R.id.item1:
startActivity(new Intent(About.this,Game.class));
break;
case R.id.item2:
startActivity(new Intent(About.this,Game1.class));
break;
case R.id.item3:
startActivity(new Intent(About.this,About.class));
break;
case R.id.item4:
startActivity(new Intent(About.this,About.class));
break;
default:
break;
}
return super.onOptionsItemSelected(item);
} }
package com.example.operation;
import java.util.Arrays;
import mehdi.sakout.fancybuttons.FancyButton;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import bsh.EvalError;
import bsh.Interpreter; import com.example.operation.R; @SuppressLint("NewApi")
public class Game extends Activity {
//EditText rsText = null;
// private TextView tv2; private TextView textView1;
private FancyButton btn_1;
boolean isClear = false;
private TextView tv=null;
private TextView tv_tishu;
private TextView tv_tishu1;
private long start;
private long end;
private boolean flag = false;
private EditText editText1;
private EditText editText2;
private String [] answer = new String [100];
private String [] right = new String [100];
private int jishu;
long millisecond;
long second;
long minute;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gamelayout);
// rsText = (EditText) findViewById(R.id.rsText);//editText1 是电脑答案
textView1 = (TextView) findViewById(R.id.textView3);
tv = (TextView) findViewById(R.id.show);
tv_tishu = (TextView) findViewById(R.id.tishutext);
tv_tishu1 = (TextView) findViewById(R.id.textView2);
editText1 = (EditText) findViewById(R.id.editText1);//editText1 是用户输入的题目
editText2 = (EditText) findViewById(R.id.editText2);//editText1 是用户输入的答案
// ActionBar actionBar = getActionBar();//获取ActionBar对象
// actionBar.setDisplayShowHomeEnabled(true);//显示应用程序图标
// actionBar.setDisplayHomeAsUpEnabled(true);//将应用程序图标转变为
Context context=getApplicationContext();
final Toast toast= Toast.makeText(context, "很遗憾,你的答案是错的", 1); answer [0]="";
btn_1 = (FancyButton) findViewById(R.id.is);
btn_1.setOnClickListener(new OnClickListener() {
int count = 0;
// String[] readomHard = new String[20];
// readomHard[count] =String.valueOf(d);
@Override
public void onClick(View v) {
count = count + 1;
String a = null;
String b = null;
String c = null;
//String d = null;
//String e = null;
String[] readomHard = new String[20];
jishu=Integer.parseInt(editText1.getText().toString());
//Toast.makeText(Game.this,jishu+"", 1).show();
//Toast.makeText(Game.this,count+"***", 1).show();
// readomHard[count] =String.valueOf(exp);
if ( count<=Integer.parseInt(editText1.getText().toString()) || end < 6) { String[] readomWord = { "+", "-", "*", "/" };
int readomWordIndex = (int) (Math.random() * 4);
c = readomWord[readomWordIndex];
a = String.valueOf((int) (Math.random() * 30));
b = String.valueOf((int) (Math.random() * 30));
//d = String.valueOf((int) (Math.random() * 30));
//e = readomWord[readomWordIndex2];
textView1.setText(a+c+b);// ....
answer[count] = editText2.getText().toString();
// textView1.setText("("+a + c + b+")"+e+d);// .... String exp = textView1.getText().toString();
// rsText.setText(exp);
//right[count-1]=exp;
//获取答案跟比较答案/
/* String temp = editText2.getText().toString();
Double temp1 = Double.parseDouble (temp);
temp1 = (int)(temp1*1000)/1000.0;
*/
/*Double exp1 = Double.parseDouble (temp);
exp1 = (int)(exp1*1000)/1000.0;
if(temp1==exp1){
Toast.makeText(Game.this, "Right ", Toast.LENGTH_LONG).show();
}*/ // if(Integer.parseInt(editText2.getText().toString())==Integer.parseInt(exp))
// {
// Toast.makeText(Game.this,"right", 1).show();
// if (exp == null || exp.trim().length() == 0)
// return;
exp = getRs(exp);
right[count-1]=exp;
if (exp.endsWith(".0")) {
exp = exp.substring(1, exp.indexOf(".0"));
}
// rsText.setText(exp); //Log.i("info",right[count-1]);
isClear = false;// ....
if (!flag && count==1){
flag=true;
start();
} if(flag&&count>Integer.parseInt(editText1.getText().toString())) {
pause();
}
readomHard[count] = String.valueOf(exp);
tv_tishu.setText("第" + count + "题"); // tv_tishu1.setText(readomHard[count]);
}
else {
btn_1.setEnabled(false);
answer[count] = editText2.getText().toString();
// Log.i("info",answer[count-1]);
tv_tishu.setText("结束");
//跳转到新的页面里面去显示答案.顺便带走答案根用户答案的数组.
//用户答案智能从1开始储存,电脑的从0
Log.i("info",answer[0]+"-"+answer[1]+"-"+answer[2]+"-"+answer[3]+"-"+answer[4]+"-"+answer[5]);
Log.i("info",right[0]+"-"+right[1]+"-"+right[2]+"-"+right[3]+"-"+right[4]); Intent intent = new Intent(Game.this,Show.class);
Bundle bundle = new Bundle();
bundle.putStringArray("user", answer);
bundle.putStringArray("Computer", right);
bundle.putInt("man", count-1);
bundle.putString("time",toTime(end));
intent.putExtras(bundle);
startActivity(intent); pause();
}
}// .... }); } //////答案 /***
* @param exp
* 算数表达式
* @return 根据表达式返回结果
*/ private String getRs(String exp) {
Interpreter bsh = new Interpreter();
Number result = null;
try {
exp = filterExp(exp);
result = (Number) bsh.eval(exp);
} catch (EvalError e) {
e.printStackTrace();
isClear = true;
return "算数公式错误";
}
return result.intValue() + "";
} /**
* @param exp
* 算数表达式
* @return 因为计算过程中,全程需要有小数参与.
*/ private String filterExp(String exp) {
String num[] = exp.split("");
String temp = null;
int begin = 0, end = 0;
for (int i = 1; i < num.length; i++) {
temp = num[i];
if (temp.matches("[+-/()*]")) {
if (temp.equals("."))
continue;
end = i - 1;
temp = exp.substring(begin, end);
if (temp.trim().length() > 0 && temp.indexOf(".") < 0)
num[i - 1] = num[i - 1] + ".0";
begin = end + 1;
}
}
return Arrays.toString(num).replaceAll("[\\[\\], ]", "");
}
////////////////////////////////////////////
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
end = System.currentTimeMillis() - start;
tv.setText(toTime(end));
}
}; public class MyThread implements Runnable {
@Override
public void run() {
while (flag) {
try {
Thread.sleep(100);
Message message = handler.obtainMessage();
message.what = 1;
handler.sendMessage(message);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
} public void pause() {
flag = false;
} public void start() {
start = System.currentTimeMillis();
flag = true;
new Thread(new MyThread()).start();
} private String toTime(long start) {
millisecond = start % 1000;
millisecond /= 100;
start /= 1000;
minute = start / 60;
second = start % 60;
minute %= 60;
return String.format("%02d:%02d:%01d", minute, second, millisecond);
} @TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater=new MenuInflater(this);
inflater.inflate(R.menu.main, menu);
getMenuInflater().inflate(R.menu.main, menu); ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true); return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,MainActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break;
case R.id.item1:
startActivity(new Intent(Game.this,Game.class));
break;
case R.id.item2:
startActivity(new Intent(Game.this,Game1.class));
break;
case R.id.item3:
startActivity(new Intent(Game.this,About.class));
break;
case R.id.item4:
startActivity(new Intent(Game.this,About.class));
break;
default:
break;
}
return super.onOptionsItemSelected(item);
} public boolean adjust(String answer,String useranswer){
/*double a = Double.parseDouble(answer);
int temp = (int)Math.round(a*1000);
a = temp/1000.0; double b =Double.parseDouble(useranswer);
if(a!=b)*/
if(answer!=useranswer)
return false;
return true;
} }
package com.example.operation;
import java.util.Arrays;
import mehdi.sakout.fancybuttons.FancyButton;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import bsh.EvalError;
import bsh.Interpreter; import com.example.operation.R; @SuppressLint("NewApi")
public class Game1 extends Activity {
//EditText rsText = null;
// private TextView tv2; private TextView textView1;
private FancyButton btn_1;
boolean isClear = false;
private TextView tv=null;
private TextView tv_tishu;
private TextView tv_tishu1;
private long start;
private long end;
private boolean flag = false;
private EditText editText1;
private EditText editText2;
private String [] answer = new String [100];
private String [] right = new String [100];
private int jishu;
long millisecond;
long second;
long minute;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gamelayout);
// rsText = (EditText) findViewById(R.id.rsText);//editText1 是电脑答案
textView1 = (TextView) findViewById(R.id.textView3);
tv = (TextView) findViewById(R.id.show);
tv_tishu = (TextView) findViewById(R.id.tishutext);
tv_tishu1 = (TextView) findViewById(R.id.textView2);
editText1 = (EditText) findViewById(R.id.editText1);//editText1 是用户输入的题目
editText2 = (EditText) findViewById(R.id.editText2);//editText1 是用户输入的答案
// ActionBar actionBar = getActionBar();//获取ActionBar对象
// actionBar.setDisplayShowHomeEnabled(true);//显示应用程序图标
// actionBar.setDisplayHomeAsUpEnabled(true);//将应用程序图标转变为
Context context=getApplicationContext();
final Toast toast= Toast.makeText(context, "很遗憾,你的答案是错的", 1); answer [0]="";
btn_1 = (FancyButton) findViewById(R.id.is);
btn_1.setOnClickListener(new OnClickListener() {
int count = 0;
// String[] readomHard = new String[20];
// readomHard[count] =String.valueOf(d);
@Override
public void onClick(View v) {
count = count + 1;
String a = null;
String b = null;
String c = null;
String d = null;
String e = null;
String[] readomHard = new String[20]; jishu=Integer.parseInt(editText1.getText().toString());
//Toast.makeText(Game.this,jishu+"", 1).show();
//Toast.makeText(Game.this,count+"***", 1).show();
// readomHard[count] =String.valueOf(exp);
if ( count<=Integer.parseInt(editText1.getText().toString()) || end < 6) { String[] readomWord = { "+", "-", "*", "/" };
int readomWordIndex = (int) (Math.random() * 4);
int readomWordIndex2 = (int) (Math.random() * 4);
c = readomWord[readomWordIndex];
a = String.valueOf((int) (Math.random() * 30));
b = String.valueOf((int) (Math.random() * 30));
d = String.valueOf((int) (Math.random() * 30));
e = readomWord[readomWordIndex2];
// textView1.setText(a+c+b);// ....
answer[count] = editText2.getText().toString();
textView1.setText("("+a + c + b+")"+e+d);// .... String exp = textView1.getText().toString();
// rsText.setText(exp);
//right[count-1]=exp;
//获取答案跟比较答案/
/* String temp = editText2.getText().toString();
Double temp1 = Double.parseDouble (temp);
temp1 = (int)(temp1*1000)/1000.0;
*/
/*Double exp1 = Double.parseDouble (temp);
exp1 = (int)(exp1*1000)/1000.0;
if(temp1==exp1){
Toast.makeText(Game.this, "Right ", Toast.LENGTH_LONG).show();
}*/ // if(Integer.parseInt(editText2.getText().toString())==Integer.parseInt(exp))
// {
// Toast.makeText(Game.this,"right", 1).show();
// if (exp == null || exp.trim().length() == 0)
// return;
exp = getRs(exp);
right[count-1]=exp;
if (exp.endsWith(".0")) {
exp = exp.substring(1, exp.indexOf(".0"));
}
// rsText.setText(exp); //Log.i("info",right[count-1]);
isClear = false;// ....
if (!flag && count==1){
flag=true;
start();
} if(flag&&count>Integer.parseInt(editText1.getText().toString())) {
pause();
}
readomHard[count] = String.valueOf(exp);
tv_tishu.setText("第" + count + "题"); // tv_tishu1.setText(readomHard[count]);
}
else {
btn_1.setEnabled(false);
answer[count] = editText2.getText().toString();
// Log.i("info",answer[count-1]);
tv_tishu.setText("结束");
//跳转到新的页面里面去显示答案.顺便带走答案根用户答案的数组.
//用户答案智能从1开始储存,电脑的从0
Log.i("info",answer[0]+"-"+answer[1]+"-"+answer[2]+"-"+answer[3]+"-"+answer[4]+"-"+answer[5]);
Log.i("info",right[0]+"-"+right[1]+"-"+right[2]+"-"+right[3]+"-"+right[4]); Intent intent = new Intent(Game1.this,Show.class);
Bundle bundle = new Bundle();
bundle.putStringArray("user", answer);
bundle.putStringArray("Computer", right);
bundle.putInt("man", count-1);
bundle.putString("time",toTime(end));
intent.putExtras(bundle);
startActivity(intent); pause();
}
}// .... }); } //////答案 /***
* @param exp
* 算数表达式
* @return 根据表达式返回结果
*/ private String getRs(String exp) {
Interpreter bsh = new Interpreter();
Number result = null;
try {
exp = filterExp(exp);
result = (Number) bsh.eval(exp);
} catch (EvalError e) {
e.printStackTrace();
isClear = true;
return "算数公式错误";
}
return result.intValue() + "";
} /**
* @param exp
* 算数表达式
* @return 因为计算过程中,全程需要有小数参与.
*/ private String filterExp(String exp) {
String num[] = exp.split("");
String temp = null;
int begin = 0, end = 0;
for (int i = 1; i < num.length; i++) {
temp = num[i];
if (temp.matches("[+-/()*]")) {
if (temp.equals("."))
continue;
end = i - 1;
temp = exp.substring(begin, end);
if (temp.trim().length() > 0 && temp.indexOf(".") < 0)
num[i - 1] = num[i - 1] + ".0";
begin = end + 1;
}
}
return Arrays.toString(num).replaceAll("[\\[\\], ]", "");
}
////////////////////////////////////////////
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
end = System.currentTimeMillis() - start;
tv.setText(toTime(end));
}
}; public class MyThread implements Runnable {
@Override
public void run() {
while (flag) {
try {
Thread.sleep(100);
Message message = handler.obtainMessage();
message.what = 1;
handler.sendMessage(message);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
} public void pause() {
flag = false;
} public void start() {
start = System.currentTimeMillis();
flag = true;
new Thread(new MyThread()).start();
} private String toTime(long start) {
millisecond = start % 1000;
millisecond /= 100;
start /= 1000;
minute = start / 60;
second = start % 60;
minute %= 60;
return String.format("%02d:%02d:%01d", minute, second, millisecond);
} @TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater=new MenuInflater(this);
inflater.inflate(R.menu.main, menu);
getMenuInflater().inflate(R.menu.main, menu); ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true); return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,MainActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break;
case R.id.item1:
startActivity(new Intent(Game1.this,Game.class));
break;
case R.id.item2:
startActivity(new Intent(Game1.this,Game1.class));
break;
case R.id.item3:
startActivity(new Intent(Game1.this,About.class));
break;
case R.id.item4:
startActivity(new Intent(Game1.this,About.class));
break;
default:
break;
}
return super.onOptionsItemSelected(item);
} public boolean adjust(String answer,String useranswer){
/*double a = Double.parseDouble(answer);
int temp = (int)Math.round(a*1000);
a = temp/1000.0; double b =Double.parseDouble(useranswer);
if(a!=b)*/
if(answer!=useranswer)
return false;
return true;
} }
package com.example.operation;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.RelativeLayout; public class Introduce extends Activity {
int Draw[] = {R.drawable.aaa,R.drawable.bbb,R.drawable.ccc,R.drawable.ddd,R.drawable.eee,R.drawable.fff};
int currentPicIndex = 0;
int changeIndex;
RelativeLayout test;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.introduce);
test = (RelativeLayout)findViewById(R.id.test);
} @Override
public boolean onTouchEvent(MotionEvent event) {
test.setBackgroundResource(Draw[currentPicIndex]);
changeIndex = currentPicIndex + 1;
currentPicIndex = changeIndex;
if(currentPicIndex > 5)
currentPicIndex = 0;
return super.onTouchEvent(event);
}}
package com.example.operation;

import java.util.Timer;
import java.util.TimerTask; import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText; public class LoginActivity extends Activity {
//账号输入框
EditText accountEdit;
//密码输入框
EditText pwdEdit; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.login); //获取账号控件,并自动弹出软键盘
accountEdit = (EditText)findViewById(R.id.accountEdittext);
accountEdit.setFocusable(true);
accountEdit.setFocusableInTouchMode(true);
accountEdit.requestFocus();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
InputMethodManager inputManager = (InputMethodManager) accountEdit
.getContext().getSystemService(
Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(accountEdit, 0);
}
},
998);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,MainActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break;
}
return super.onOptionsItemSelected(item);}}
package com.example.operation;
import mehdi.sakout.fancybuttons.FancyButton;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle; import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener; import android.widget.TextView;
import com.example.operation.R;
//import com.example.tet.R;
//import com.example.operation.MainActivity.MyThread; @SuppressLint("NewApi")
public class MainActivity extends Activity { private FancyButton btn1;
private FancyButton btn2;
private FancyButton btn3;
private FancyButton btn5;
private FancyButton btn6;
private TextView tv1;
private boolean flag = false;
// private long start;
// private long end;
// private boolean flag = false; @TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menulayout);
ActionBar actionBar = getActionBar();//获取ActionBar对象
actionBar.setDisplayShowHomeEnabled(true);//显示应用程序图标
actionBar.setDisplayHomeAsUpEnabled(true);//将应用程序图标转变为 // tv1=(TextView)findViewById(R.id.biaoti);
btn1=(FancyButton)findViewById(R.id.button1);
btn2=(FancyButton)findViewById(R.id.button2);
btn3=(FancyButton)findViewById(R.id.button3);
btn5=(FancyButton)findViewById(R.id.button5);
btn6=(FancyButton)findViewById(R.id.button6);
btn1.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,Game.class);
startActivity(intent);
}
});
btn2.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,Game1.class);
startActivity(intent);
}
}); btn3.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,Introduce.class);
startActivity(intent);
}
});
btn5.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,About.class);
startActivity(intent);
}
}); btn6.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,LoginActivity.class);
startActivity(intent);
}
});
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,MainActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break;
case R.id.item1:
startActivity(new Intent(MainActivity.this,Game.class));
break;
case R.id.item2:
startActivity(new Intent(MainActivity.this,Game1.class));
break;
case R.id.item3:
startActivity(new Intent(MainActivity.this,About.class));
break;
case R.id.item4:
startActivity(new Intent(MainActivity.this,About.class));
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}}
package com.example.operation;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
public class Show extends Activity {
private TextView t1;
private TextView t2;
private TextView t3;
private TextView t4;
private TextView t5;
private TextView t6;
private TextView t7;
private TextView t8;
private TextView t9;
private TextView t10;
private TextView t11;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
int count=0;
super.onCreate(savedInstanceState);
setContentView(R.layout.showlayout);
TextView t[]=new TextView[100];
t1 = (TextView)findViewById(R.id.textView1);
t2 = (TextView)findViewById(R.id.textView2);
t3 = (TextView)findViewById(R.id.textView3);
t4 = (TextView)findViewById(R.id.textView4);
t5 = (TextView)findViewById(R.id.textView5);
t6 = (TextView)findViewById(R.id.textView6);
t7 = (TextView)findViewById(R.id.textView7);
t8 = (TextView)findViewById(R.id.textView8);
t9 = (TextView)findViewById(R.id.textView9);
t10 = (TextView)findViewById(R.id.textView10);
t11= (TextView)findViewById(R.id.time);
//获取
Bundle bundle2 = getIntent().getExtras();
String []user = new String[100];
String []computer = new String[100];
String time ; int man;
user = bundle2.getStringArray("user");
computer = bundle2.getStringArray("Computer");
man=bundle2.getInt("man");
time=bundle2.getString("time");
t11.setText("答题所用的时间为:"+time); // Log.i("info",computer[0]+"*"+computer[1]+"*"+computer[2]+"*"+computer[3]+"*"+computer[4]
// +"*"+computer[5]+"*"+computer[6]+"*"+computer[7]+"*"+computer[8]+"*"+computer[9] );
//Log.i("info",user[2]+"*"+user[3]+"*"+user[4]+"*"+user[5]+"*"+user[6]+"*"+user[7]+"*"+user[8]
// +"*"+user[9]+"*"+user[10]+"*"+user[11]);
// Log.i("info",""+man);
if (user[2].equals(computer[0]))
t1.setText("你答对了第一题"+","+"答案是"+":"+computer[0]);
else
t1.setText("你答错了第一题"+","+"答案是"+":"+computer[0]); if (user[3]==null&&computer[1]==null)
t2.setText("2");
else if (user[3].equals(computer[1]))
t2.setText("你答对了第二题"+","+"答案是"+":"+computer[1]);
else
t2.setText("你答错了第二题"+","+"答案是"+":"+computer[1]); if (user[4]==null&&computer[2]==null)
t3.setText("3");
else if (user[4].equals(computer[2]))
t3.setText("你答对了第三题"+","+"答案是"+":"+computer[2]);
else
t3.setText("你答错了第三题"+","+"答案是"+":"+computer[2]); if (user[5]==null&&computer[3]==null)
t4.setText("4");
else if (user[5].equals(computer[3]))
t4.setText("你答对了第四题"+","+"答案是"+":"+computer[3]);
else
t4.setText("你答错了第四题"+","+"答案是"+":"+computer[3]); if (user[6]==null&&computer[4]==null)
t5.setText("5");
else if (user[6].equals(computer[4]))
t5.setText("你答对了第五题"+","+"答案是"+":"+computer[4]);
else
t5.setText("你答错了第五题"+","+"答案是"+":"+computer[4]); if (user[7]==null&&computer[5]==null)
t6.setText("6");
else if (user[7].equals(computer[5]))
t6.setText("你答对了第六题"+","+"答案是"+":"+computer[5]);
else
t6.setText("你答错了第六题"+","+"答案是"+":"+computer[5]); if (user[8]==null&&computer[6]==null)
t7.setText("7");
else if (user[8].equals(computer[6]))
t7.setText("你答对了第七题"+","+"答案是"+":"+computer[6]);
else
t7.setText("你答错了第七题"+","+"答案是"+":"+computer[6]); if (user[9]==null&&computer[7]==null)
t8.setText("8");
else if (user[9].equals(computer[7]))
t8.setText("你答对了第八题"+","+"答案是"+":"+computer[7]);
else
t8.setText("你答错了第八题"+","+"答案是"+":"+computer[7]); if (user[10]==null&&computer[8]==null)
t9.setText("9");
else if (user[10].equals(computer[8]))
t9.setText("你答对了第九题"+","+"答案是"+":"+computer[8]);
else
t9.setText("你答错了第九题"+","+"答案是"+":"+computer[8]); if (user[11]==null&&computer[9]==null)
t10.setText("10");
else if (user[11].equals(computer[9]))
t10.setText("你答对了第十题"+","+"答案是"+":"+computer[9]);
else
t10.setText("你答错了第十题"+","+"答案是"+":"+computer[9]); }
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater=new MenuInflater(this);
inflater.inflate(R.menu.main, menu);
getMenuInflater().inflate(R.menu.main, menu); ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true); return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,MainActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break;
case R.id.item1:
startActivity(new Intent(Show.this,Game.class));
break;
case R.id.item2:
startActivity(new Intent(Show.this,Game1.class));
break;
case R.id.item3:
startActivity(new Intent(Show.this,About.class));
break;
case R.id.item4:
startActivity(new Intent(Show.this,About.class));
break;
default:
break;
}
return super.onOptionsItemSelected(item);
} }
package com.example.operation;

import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.widget.Button;
import android.widget.TextView; public class time { private TextView tv;
private long start;
private long end;
private boolean flag = false;
private Button btnStart;
@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
@Override
public void handleMessage(android.os.Message msg) {
super.handleMessage(msg);
end = System.currentTimeMillis() - start;
tv.setText(toTime(end));
}
}; public class MyThread implements Runnable {
@Override
public void run() {
while (flag) {
try {
Thread.sleep(100);
Message message = handler.obtainMessage();
message.what = 1;
handler.sendMessage(message);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
} public void pause() {
flag = false;
} public void start() {
start = System.currentTimeMillis();
flag = true;
new Thread(new MyThread()).start();
} private String toTime(long start) {
long millisecond = start % 1000;
millisecond /= 100;
start /= 1000;
long minute = start / 60;
long second = start % 60;
minute %= 60;
return String.format("%02d:%02d:%01d", minute, second, millisecond);
} }
package mehdi.sakout.fancybuttons;

import java.util.ArrayList;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.StateListDrawable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView; import com.example.operation.*; @SuppressWarnings("unused")
public class FancyButton extends LinearLayout{ private Context mContext; // # Background Attributes
private int mDefaultBackgroundColor = Color.BLACK;
private int mFocusBackgroundColor = 0; // # Text Attributes
private int mDefaultTextColor = Color.WHITE;
private int mDefaultIconColor = Color.WHITE;
private int mTextPosition = 1;
private int mDefaultTextSize = 15;
private int mDefaultTextGravity = 0x11; // Gravity.CENTER
private String mText = null; // # Icon Attributes
private Drawable mIconResource = null;
private int mFontIconSize = 15;
private String mFontIcon = null;
private int mIconPosition = 1; private int mIconPaddingLeft = 10;
private int mIconPaddingRight = 10;
private int mIconPaddingTop = 0;
private int mIconPaddingBottom = 0; private int mBorderColor = Color.TRANSPARENT;
private int mBorderWidth = 0; private int mRadius = 0; private Typeface mTextTypeFace = null;
private Typeface mIconTypeFace = null; /**
* Tags to identify icon position
*/
public static final int POSITION_LEFT = 1;
public static final int POSITION_RIGHT = 2;
public static final int POSITION_TOP = 3;
public static final int POSITION_BOTTOM = 4; private String mDefaultIconFont = "fontawesome.ttf";
private String mDefaultTextFont = "robotoregular.ttf"; private ImageView mIconView;
private TextView mFontIconView;
private TextView mTextView; private boolean mGhost = false ; // Default is a solid button ! /**
* Default constructor
* @param context : Context
*/
public FancyButton(Context context){
super(context);
this.mContext = context; mTextTypeFace = Typeface.createFromAsset(mContext.getAssets(), String.format("fonts/%s",mDefaultTextFont));
mIconTypeFace = Typeface.createFromAsset(mContext.getAssets(), String.format("iconfonts/%s",mDefaultIconFont)); initializeFancyButton();
} /**
* Default constructor called from Layouts
* @param context : Context
* @param attrs : Attributes Array
*/
public FancyButton(Context context, AttributeSet attrs){
super(context,attrs);
this.mContext = context; TypedArray attrsArray = context.obtainStyledAttributes(attrs,R.styleable.FancyButtonsAttrs, 0, 0);
initAttributsArray(attrsArray);
attrsArray.recycle(); initializeFancyButton(); }
/**
* Initialize Button dependencies
* - Initialize Button Container : The LinearLayout
* - Initialize Button TextView
* - Initialize Button Icon
* - Initialize Button Font Icon
*/
private void initializeFancyButton(){ initializeButtonContainer(); mTextView = setupTextView();
mIconView = setupIconView();
mFontIconView = setupFontIconView(); int iconIndex,textIndex;
View view1,view2; if(mIconView == null && mFontIconView == null && mTextView == null){
Button tempTextView = new Button(mContext);
tempTextView.setText("Fancy Button");
this.addView(tempTextView); }else{
this.removeAllViews();
setupBackground(); ArrayList<View> views = new ArrayList<View>(); if(mIconPosition == POSITION_LEFT || mIconPosition == POSITION_TOP){ if(mIconView != null){
views.add(mIconView);
} if(mFontIconView != null){
views.add(mFontIconView);
}
if(mTextView != null){
views.add(mTextView);
} }else{
if(mTextView != null){
views.add(mTextView);
} if(mIconView != null){
views.add(mIconView);
} if(mFontIconView != null){
views.add(mFontIconView);
} } for(View view : views){
this.addView(view);
}
}
} /**
* Setup Text View
* @return : TextView
*/
private TextView setupTextView(){
if (mText != null) {
TextView textView = new TextView(mContext);
textView.setText(mText);
textView.setGravity(mDefaultTextGravity);
textView.setTextColor(mDefaultTextColor);
textView.setTextSize(mDefaultTextSize); textView.setLayoutParams(new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
if (!isInEditMode() && mTextTypeFace!=null) {
textView.setTypeface(mTextTypeFace);
}
return textView;
}
return null;
} /**
* Setup Font Icon View
* @return : TextView
*/
private TextView setupFontIconView(){ if(mFontIcon!=null){
TextView fontIconView = new TextView(mContext);
fontIconView.setTextColor(mDefaultIconColor); LayoutParams iconTextViewParams = new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT,android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
iconTextViewParams.rightMargin = mIconPaddingRight;
iconTextViewParams.leftMargin = mIconPaddingLeft;
iconTextViewParams.topMargin = mIconPaddingTop;
iconTextViewParams.bottomMargin = mIconPaddingBottom; if(mTextView != null){ if(mIconPosition==POSITION_TOP || mIconPosition==POSITION_BOTTOM){
iconTextViewParams.gravity = Gravity.CENTER;
fontIconView.setGravity(Gravity.CENTER);
}
else{
fontIconView.setGravity(Gravity.CENTER_VERTICAL);
iconTextViewParams.gravity = Gravity.CENTER_VERTICAL;
}
}else{
iconTextViewParams.gravity = Gravity.CENTER;
fontIconView.setGravity(Gravity.CENTER_VERTICAL);
} fontIconView.setLayoutParams(iconTextViewParams);
if(!isInEditMode()){
fontIconView.setTextSize(mFontIconSize);
fontIconView.setText(mFontIcon);
fontIconView.setTypeface(mIconTypeFace);
}else{
fontIconView.setText("O");
}
return fontIconView;
}
return null;
} /**
* Text Icon resource view
* @return : ImageView
*/
private ImageView setupIconView(){
if (mIconResource != null){
ImageView iconView = new ImageView(mContext);
iconView.setImageDrawable(mIconResource);
iconView.setPadding(mIconPaddingLeft, mIconPaddingTop, mIconPaddingRight, mIconPaddingBottom); LayoutParams iconViewParams = new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT,android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
if(mTextView!=null){
if(mIconPosition==POSITION_TOP || mIconPosition==POSITION_BOTTOM)
iconViewParams.gravity = Gravity.CENTER;
else
iconViewParams.gravity = Gravity.START; iconViewParams.rightMargin = 10;
iconViewParams.leftMargin = 10;
}else{
iconViewParams.gravity = Gravity.CENTER_VERTICAL;
}
iconView.setLayoutParams(iconViewParams); return iconView;
}
return null;
} /**
* Initialize Attributes arrays
* @param attrsArray : Attributes array
*/
private void initAttributsArray(TypedArray attrsArray){ mDefaultBackgroundColor = attrsArray.getColor(R.styleable.FancyButtonsAttrs_fb_defaultColor,mDefaultBackgroundColor);
mFocusBackgroundColor = attrsArray.getColor(R.styleable.FancyButtonsAttrs_fb_focusColor,mFocusBackgroundColor); mDefaultTextColor = attrsArray.getColor(R.styleable.FancyButtonsAttrs_fb_textColor,mDefaultTextColor);
// if default color is set then the icon's color is the same (the default for icon's color)
mDefaultIconColor = attrsArray.getColor(R.styleable.FancyButtonsAttrs_fb_iconColor,mDefaultTextColor);
mDefaultTextSize = (int) attrsArray.getDimension(R.styleable.FancyButtonsAttrs_fb_textSize,mDefaultTextSize);
mDefaultTextGravity = attrsArray.getInt(R.styleable.FancyButtonsAttrs_fb_textGravity, mDefaultTextGravity); mBorderColor = attrsArray.getColor(R.styleable.FancyButtonsAttrs_fb_borderColor,mBorderColor);
mBorderWidth = (int) attrsArray.getDimension(R.styleable.FancyButtonsAttrs_fb_borderWidth,mBorderWidth); mRadius = (int)attrsArray.getDimension(R.styleable.FancyButtonsAttrs_fb_radius,mRadius);
mFontIconSize = (int)attrsArray.getDimension(R.styleable.FancyButtonsAttrs_fb_fontIconSize,mFontIconSize); mIconPaddingLeft = (int)attrsArray.getDimension(R.styleable.FancyButtonsAttrs_fb_iconPaddingLeft,mIconPaddingLeft);
mIconPaddingRight = (int)attrsArray.getDimension(R.styleable.FancyButtonsAttrs_fb_iconPaddingRight,mIconPaddingRight);
mIconPaddingTop = (int)attrsArray.getDimension(R.styleable.FancyButtonsAttrs_fb_iconPaddingTop,mIconPaddingTop);
mIconPaddingBottom = (int)attrsArray.getDimension(R.styleable.FancyButtonsAttrs_fb_iconPaddingBottom,mIconPaddingBottom); mGhost = attrsArray.getBoolean(R.styleable.FancyButtonsAttrs_fb_ghost, mGhost); String text = attrsArray.getString(R.styleable.FancyButtonsAttrs_fb_text);
mIconPosition = attrsArray.getInt(R.styleable.FancyButtonsAttrs_fb_iconPosition,mIconPosition); String fontIcon = attrsArray.getString(R.styleable.FancyButtonsAttrs_fb_fontIconResource); String iconFontFamily = attrsArray.getString(R.styleable.FancyButtonsAttrs_fb_iconFont);
String textFontFamily = attrsArray.getString(R.styleable.FancyButtonsAttrs_fb_textFont); Drawable icon = null;
try{
mIconResource = attrsArray.getDrawable(R.styleable.FancyButtonsAttrs_fb_iconResource); }catch(Exception e){
mIconResource = null;
} if(fontIcon!=null)
mFontIcon = fontIcon; if(text!=null)
mText = text; if(!isInEditMode()){
if(iconFontFamily!=null){
try{
mIconTypeFace = Typeface.createFromAsset(mContext.getAssets(), String.format("iconfonts/%s",iconFontFamily));
}catch(Exception e){
Log.e("Fancy",e.getMessage());
mIconTypeFace= Typeface.createFromAsset(mContext.getAssets(), String.format("iconfonts/%s",mDefaultIconFont));
} }else{
mIconTypeFace= Typeface.createFromAsset(mContext.getAssets(), String.format("iconfonts/%s",mDefaultIconFont));
} if(textFontFamily!=null){
try{
mTextTypeFace = Typeface.createFromAsset(mContext.getAssets(), String.format("fonts/%s",textFontFamily));
}
catch(Exception e){
mTextTypeFace= Typeface.createFromAsset(mContext.getAssets(), String.format("fonts/%s",mDefaultTextFont));
} }else{
mTextTypeFace= Typeface.createFromAsset(mContext.getAssets(), String.format("fonts/%s",mDefaultTextFont));
} } }
@SuppressLint("NewApi")
private void setupBackground(){ // Default Drawable
GradientDrawable drawable = new GradientDrawable();
drawable.setCornerRadius(mRadius);
if (mGhost){
drawable.setColor(getResources().getColor(android.R.color.transparent)); // Hollow Background
}
else {
drawable.setColor(mDefaultBackgroundColor);
}
if (mBorderColor != 0) {
drawable.setStroke(mBorderWidth, mBorderColor);
} // Focus/Pressed Drawable
GradientDrawable drawable2 = new GradientDrawable();
drawable2.setCornerRadius(mRadius);
if (mGhost){
drawable2.setColor(getResources().getColor(android.R.color.transparent)); // No focus color
}
else {
drawable2.setColor(mFocusBackgroundColor);
}
if (mBorderColor != 0) {
if (mGhost) {
drawable2.setStroke(mBorderWidth, mFocusBackgroundColor); // Border is the main part of button now
}
else {
drawable2.setStroke(mBorderWidth, mBorderColor);
}
} StateListDrawable states = new StateListDrawable(); if(mFocusBackgroundColor!=0){
states.addState(new int[] { android.R.attr.state_pressed }, drawable2);
states.addState(new int[] { android.R.attr.state_focused }, drawable2);
}
states.addState(new int[] {}, drawable); if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
this.setBackgroundDrawable(states);
} else {
this.setBackground(states);
}
} /**
* Initialize button container
*/
private void initializeButtonContainer(){ if(mIconPosition == POSITION_TOP || mIconPosition == POSITION_BOTTOM){
this.setOrientation(LinearLayout.VERTICAL);
}else{
this.setOrientation(LinearLayout.HORIZONTAL);
}
LayoutParams containerParams = new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT,android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
this.setLayoutParams(containerParams);
this.setGravity(Gravity.CENTER);
this.setClickable(true);
this.setFocusable(true);
if(mIconResource==null && mFontIcon==null && getPaddingLeft()==0 && getPaddingRight()==0 && getPaddingTop()==0 && getPaddingBottom()==0){
this.setPadding(20, 20, 20, 20);
}
} /**
* Set Text of the button
* @param text : Text
*/
public void setText(String text){
this.mText = text;
if(mTextView == null)
initializeFancyButton();
else
mTextView.setText(text);
} /**
* Set the color of text
* @param color : Color
* use Color.parse('#code')
*/
public void setTextColor(int color){
this.mDefaultTextColor = color;
if(mTextView == null)
initializeFancyButton();
else
mTextView.setTextColor(color); } /**
* Setting the icon's color independent of the text color
* @param color : Color
*/
public void setIconColor(int color){
if(mFontIconView != null) {
mFontIconView.setTextColor(color);
}
} /**
* Set Background color of the button
* @param color : use Color.parse('#code')
*/
@Override
public void setBackgroundColor(int color){
this.mDefaultBackgroundColor = color;
if(mIconView != null || mFontIconView != null || mTextView != null){
this.setupBackground();
}
} /**
* Set Focus color of the button
* @param color : use Color.parse('#code')
*/
public void setFocusBackgroundColor(int color){
this.mFocusBackgroundColor = color;
if(mIconView != null || mFontIconView != null || mTextView != null)
this.setupBackground(); } /**
* Set the size of Text
* @param textSize : Text Size
*/
public void setTextSize(int textSize){
this.mDefaultTextSize = textSize;
if(mTextView != null)
mTextView.setTextSize(textSize);
} /**
* Set the gravity of Text
* @param gravity : Text Gravity
*/ public void setTextGravity(int gravity) {
this.mDefaultTextGravity = gravity;
if (mTextView != null) {
mTextView.setGravity(gravity);
}
} /**
* Set Padding for mIconView and mFontIconSize
* @param paddingLeft : Padding Left
* @param paddingTop : Padding Top
* @param paddingRight : Padding Right
* @param paddingBottom : Padding Bottom
*/
public void setIconPadding(int paddingLeft, int paddingTop, int paddingRight, int paddingBottom){
this.mIconPaddingLeft = paddingLeft;
this.mIconPaddingTop = paddingTop;
this.mIconPaddingRight = paddingRight;
this.mIconPaddingBottom = paddingBottom;
if(mIconView != null){
mIconView.setPadding(this.mIconPaddingLeft, this.mIconPaddingTop, this.mIconPaddingRight, this.mIconPaddingBottom);
}
if(mFontIconView != null){
mFontIconView.setPadding(this.mIconPaddingLeft, this.mIconPaddingTop, this.mIconPaddingRight, this.mIconPaddingBottom);
}
} /**
* Set an icon from resources to the button
* @param drawable : Drawable resource
*/
public void setIconResource(int drawable){
this.mIconResource = mContext.getResources().getDrawable(drawable);
if(mIconView == null || mFontIconView != null) {
mFontIconView= null;
initializeFancyButton();
}
else
mIconView.setImageDrawable(mIconResource);
} /**
* Set a font icon to the button (eg FFontAwesome or Entypo...)
* @param icon : Icon value eg : \uf082
*/
public void setIconResource(String icon){
this.mFontIcon = icon;
if(mFontIconView == null) {
mIconView=null;
initializeFancyButton();
}
else
mFontIconView.setText(icon);
} /**
* Set Icon size of the button (for only font icons)
* @param iconSize : Icon Size
*/
public void setFontIconSize(int iconSize){
this.mFontIconSize = iconSize;
if(mFontIconView!=null)
mFontIconView.setTextSize(iconSize);
} /**
* Set Icon Position
* Use the global variables (FancyButton.POSITION_LEFT, FancyButton.POSITION_RIGHT, FancyButton.POSITION_TOP, FancyButton.POSITION_BOTTOM)
* @param position : Position
*/
public void setIconPosition(int position){
if(position>0 && position<5)
mIconPosition = position;
else
mIconPosition = POSITION_LEFT; initializeFancyButton();
} /**
* Set color of the button border
* @param color : Color
* use Color.parse('#code')
*/
public void setBorderColor(int color){
this.mBorderColor = color;
if(mIconView!=null || mFontIconView!=null || mTextView!=null){
this.setupBackground();
}
} /**
* Set Width of the button
* @param width : Width
*/
public void setBorderWidth(int width){
this.mBorderWidth = width;
if(mIconView != null || mFontIconView != null || mTextView != null){
this.setupBackground();
}
} /**
* Set Border Radius of the button
* @param radius : Radius
*/
public void setRadius(int radius){
this.mRadius = radius;
if(mIconView != null || mFontIconView != null || mTextView != null){
this.setupBackground();
}
} /**
* Set custom font for button Text
* @param fontName : Font Name
* Place your text fonts in assets/fonts/
*/
public void setCustomTextFont(String fontName){
try{
mTextTypeFace = Typeface.createFromAsset(mContext.getAssets(), String.format("fonts/%s",fontName));
}catch(Exception e){
Log.e("FancyButtons",e.getMessage());
mTextTypeFace= Typeface.createFromAsset(mContext.getAssets(), String.format("fonts/%s",mDefaultTextFont));
} if(mTextView==null)
initializeFancyButton();
else
mTextView.setTypeface(mTextTypeFace); } /**
* Set Custom font for button icon
* @param fontName : Font Name
* Place your icon fonts in assets/iconfonts/
*/
public void setCustomIconFont(String fontName){
try{
mIconTypeFace = Typeface.createFromAsset(mContext.getAssets(), String.format("iconfonts/%s",fontName));
}catch(Exception e){
Log.e("FancyButtons",e.getMessage());
mIconTypeFace= Typeface.createFromAsset(mContext.getAssets(), String.format("iconfonts/%s",mDefaultIconFont));
} if(mFontIconView == null)
initializeFancyButton();
else
mFontIconView.setTypeface(mIconTypeFace); } /**
* Setting the button to have hollow or solid shape
* @param ghost
*/
public void setGhost(boolean ghost) {
this.mGhost = ghost; if(mIconView != null || mFontIconView != null || mTextView != null){
this.setupBackground();
} } /**
* Return Text of the button
* @return Text
*/
public CharSequence getText(){
if (mTextView != null)
return mTextView.getText();
else
return "";
} /**
* Return TextView Object of the FancyButton
* @return TextView Object
*/
public TextView getTextViewObject(){
return mTextView;
} /**
* Return Icon Font of the FancyButton
* @return TextView Object
*/
public TextView getIconFontObject(){
return mFontIconView;
} /**
* Return Icon of the FancyButton
* @return ImageView Object
*/
public ImageView getIconImageObject(){
return mIconView;
} }

 

                                                                                     

app推广及主要代码的更多相关文章

  1. 详细的App推广前的准备工作

    App开发完成后,推广App自然就成为下一步工作的重点.兵马未动,粮草先行,这里为大家整理了一份App推广前需要准备一些事项,希望能给正在准备开展App推广的小伙伴们一些帮助. 众所周知,App推广的 ...

  2. APP推广入门之AppStore数据分析

    AppStore中有很多数据,但对于一个App推广者而言,最需要关注的无非这么几个,即下载量.评论.权重.榜单排名.搜索排名以及热词搜索等.至于这些数据具体代表着什么,下面就先由下载量开始,来简单介绍 ...

  3. 史上最全APP推广渠道

    群主做App推广的过程中,有过失败也尝过成功的甜头,渐渐地在APP推广尤其是渠道推广中积累了一些实战经验想同大家分享.如果各位有更好的推广建议,欢迎沟通分享哦!   一.应用商店推广   1.应用市场 ...

  4. 【转】APP推广什么是cpa,cps,cpm

    转载自:http://www.apptg.cn 经常做做APP推广和做运营的同学对于cpa,cps,cpm,cpc这些名词肯定不会陌生,也基本都知道其表示的含义,但是对于新手来说,这几个词的含义还是不 ...

  5. 谋哥:App推广最有效的是自推广

    [谋哥每天一原创,第一百五十二篇] 目前市场上,各类App已经覆盖到所有你能想到的领域,并且各个山头也被占得差不多了,网上 的说法就是布局已经完成.如果你想现在再插那么一杠子进去,就得看你的真本事了, ...

  6. 谋哥:转型之痒与App推广之痛

    昨天<重庆今日教育>的副主编汪熙坤老师先加我微信,谋哥的微信每天有几十个不同领域的朋友加.几句客套后,他马上就直奔主题了.为什么这么着急呢?是因为危机感,是因为感受到了互联网给传统纸媒带来 ...

  7. openinstall的免费服务对App推广有哪些帮助?

    想在微信中下载 App,需要“点击右上角打开浏览器”,太麻烦: 想深入查看微信分享内容,需要手动打开 App 搜索,不方便: 想给 App 做推广,Android 需要多个渠道人工打包,效率低: .. ...

  8. APP携参安装技术怎样帮助APP推广

    APP 如何自动实现携带参数安装?这是许多开发者感兴趣的问题,毕竟在 APP 开发的许多逻辑上常常不可避免的需要判断安装来源,比如:广告投放.用户邀请.用户行为.社交分享等 APP 推广环节,国内的 ...

  9. 移动互联网App推广的十大难题

    常常有朋友来问."我做了一个App,请问怎么推广啊?"或者就是"我们公司开发了一个App.想短时间内获取巨大的量."还有的就是问"有没有什么好渠道三个 ...

随机推荐

  1. Beta冲刺(2/5)(麻瓜制造者)

    今日完成任务 邓弘立:继续完成了昨天未完成的登录接口的重编码与测试. 李佳铭|:进一步完善了收藏UI 江郑: 对使用前端框架页面元素的进一步优化,基本功能进行中 刘双玉:部分图书馆租借接口修改 肖小强 ...

  2. PyQt5--QComboBox

    # -*- coding:utf-8 -*- ''' Created on Sep 20, 2018 @author: SaShuangYiBing Comment: ''' import sys f ...

  3. WPFのclipToBounds与maskToBounds的区别

    UIView.clipsToBounds : 让子 View 只显示父 View 的 Frame 部分,子视图超出frame的部分不显示,默认为NO,设置为YES就会把超出的部分裁掉: maskToB ...

  4. Django之form表单认证

    Model常用操作: - 参数:filter 三种传参方式 - all(得到的是列表),values(字典),values_list(元祖) [obj(id,name,pwd,email),obj(i ...

  5. oracle11gR2 手工创建基于asm存储的oracle实例

    http://www.cnblogs.com/beanbee/archive/2012/09/22/2697689.html使用命令行手工建立Oracle11gR2数据库 通过命令行建立一个数据库可以 ...

  6. CSS3渐变——径向渐变

    上节在<再说CSS3渐变——线性渐变>和大家一起学习了CSS3 Gradient中径向渐变最新语法(称得上是W3C的标准语法)相关知识以及其基本使用.今天我们在这一篇中主要和大家一起来了解 ...

  7. Rinkeby中测试币的申请

    https://www.rinkeby.io/#faucet 从这个页面可以看见测试币的请求是有要求的,下面说明怎么做: 之前使用的是google账号,即第二种方式来获取.后面gmail出现了问题,一 ...

  8. dubbo报错Data length too large: 10710120处理,及服务提供者协议配置详细说明

    工作中遇到以下报错信息 cause: java.io.IOException: Data length too large: 10710120, max payload: 8388608, chann ...

  9. 如何在Qt Creator中导入图标资源

    本文主要描述如何在Qt Creator中创建资源文件,并的打入导入图标文件. 查看图标资源文件时,可以在项目的工程文件上鼠标单击右键-Open With-资源编辑器,效果如下图所示: 在项目的工程文件 ...

  10. ESP WIFI

    esp_err_tesp_wifi_init(constwifi_init_config_t *config) 这个WIFI初始化函数是使用所有的WIFI API之前必须调用的函数: 函数的参数是一个 ...