歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android簡單手電筒的應用可以設置不同的顏色

Android簡單手電筒的應用可以設置不同的顏色

日期:2017/3/1 10:13:23   编辑:Linux編程

手電筒對於Android來說是極其常見的一個應用,常見的是通過攝像頭發出光線進行照明,這裡我們沒有采取那樣做而是通過采取通過界面Layout的一些方法來設置可擁有顯示不同顏色。其整體的思路不是太難,首先我們應該在values建立一個color.xml文件來存儲不同的顏色信息:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <color name="white">#FFFFFF</color>
  4. <color name="yellow">#FFD700</color>
  5. <color name="red">#FF0000</color>
  6. <color name="pink">#FF34B3</color>
  7. <color name="black">#000000</color>
  8. <color name="lightSkyBlue">#87CEFA</color>
  9. </resources>

然後以下是我們的源碼文件:

  1. public class MainActivity extends Activity {
  2. /** Called when the activity is first created. */
  3. private LinearLayout mylayout;
  4. private Resources mycolor;
  5. public void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.main);
  8. //改背layout背景顏色
  9. mylayout=(LinearLayout)findViewById(R.id.myline);
  10. //手電筒默認為白色的光
  11. setColor(R.color.white);
  12. //這裡默認最大亮度
  13. setBright(1.0f);
  14. }
  15. /*
  16. * 選擇設置背景顏色
  17. * (non-Javadoc)
  18. * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
  19. */
  20. @Override
  21. public boolean onCreateOptionsMenu(Menu menu)
  22. {
  23. // TODO Auto-generated method stub
  24. menu.addSubMenu(0, Menu.FIRST,1, "選擇背景顏色");
  25. menu.addSubMenu(0, Menu.FIRST+1,2,"調節背景亮度");
  26. menu.addSubMenu(0,Menu.FIRST+2,3, "關於");
  27. menu.addSubMenu(0,Menu.FIRST+3,4,"退出");
  28. return super.onCreateOptionsMenu(menu);
  29. }
  30. /*
  31. * 選擇處理
  32. * (non-Javadoc)
  33. * @see android.app.Activity#onMenuItemSelected(int, android.view.MenuItem)
  34. */
  35. @Override
  36. public boolean onMenuItemSelected(int featureId, MenuItem item)
  37. {
  38. // TODO Auto-generated method stub
  39. switch (item.getItemId())
  40. {
  41. case Menu.FIRST:
  42. selectColor();
  43. break;
  44. case Menu.FIRST+1:
  45. selectBright();
  46. break;
  47. case Menu.FIRST+2:
  48. about();
  49. break;
  50. case Menu.FIRST+3:
  51. MainActivity.this.finish();
  52. break;
  53. default:
  54. break;
  55. }
  56. return super.onMenuItemSelected(featureId, item);
  57. }
  58. /*
  59. * 選擇背景顏色進行設置
  60. */
  61. private void selectColor()
  62. {
  63. // 顯示並且設置一些參數
  64. final String[] items = {"白色", "紅色", "黑色","黃色","粉色","亮藍色"};
  65. new AlertDialog.Builder(MainActivity.this).setTitle("請選擇顏色").setItems(items,
  66. new DialogInterface.OnClickListener(){
  67. @Override
  68. public void onClick(DialogInterface dialog, int which)
  69. {
  70. // TODO Auto-generated method stub
  71. switch (which)
  72. {
  73. case 0:
  74. setColor(R.color.white);
  75. break;
  76. case 1:
  77. setColor(R.color.red);
  78. break;
  79. case 2:
  80. setColor(R.color.black);
  81. break;
  82. case 3:
  83. setColor(R.color.yellow);
  84. break;
  85. case 4:
  86. setColor(R.color.pink);
  87. break;
  88. case 5:
  89. setColor(R.color.lightSkyBlue);
  90. break;
  91. default:
  92. break;
  93. }
  94. }
  95. }).create().show();
  96. }
  97. /*
  98. * 設置亮度
  99. */
  100. private void selectBright()
  101. {
  102. final String[] items = {"100%", "75%", "50%","25%","10%"};
  103. new AlertDialog.Builder(MainActivity.this).setTitle("請選擇亮度").setItems(items,
  104. new DialogInterface.OnClickListener(){
  105. @Override
  106. public void onClick(DialogInterface dialog, int which)
  107. {
  108. // TODO Auto-generated method stub
  109. switch (which)
  110. {
  111. case 0:
  112. setBright(1.0f);
  113. break;
  114. case 1:
  115. setBright(0.75f);
  116. break;
  117. case 2:
  118. setBright(0.5f);
  119. break;
  120. case 3:
  121. setBright(0.25f);
  122. break;
  123. case 4:
  124. setBright(0.1f);
  125. break;
  126. default:
  127. break;
  128. }
  129. }
  130. }).create().show();
  131. }
  132. private void about()
  133. {
  134. new AlertDialog.Builder(MainActivity.this).setTitle("關於我們!!")
  135. .setMessage("ZY只為你做更實用的軟件!\n郵箱:[email protected]\n聯系我們!!")
  136. .setPositiveButton("確定", new DialogInterface.OnClickListener()
  137. {
  138. @Override
  139. public void onClick(DialogInterface dialog, int which)
  140. {
  141. // TODO Auto-generated method stub
  142. }
  143. }).create().show();
  144. }
  145. /*
  146. * 設置背景顏色
  147. */
  148. private void setColor(int color)
  149. {
  150. //得到資源的一個對象
  151. mycolor=getBaseContext().getResources();
  152. Drawable usecolor=mycolor.getDrawable(color);
  153. //設置手電筒光的背景顏色
  154. mylayout.setBackgroundDrawable(usecolor);
  155. }
  156. /*
  157. * 設置亮度
  158. */
  159. private void setBright(float light)
  160. {
  161. WindowManager.LayoutParams lp=getWindow().getAttributes();
  162. lp.screenBrightness=light;
  163. getWindow().setAttributes(lp);
  164. }
  165. }

布局文件:

  1. <LinearLayout xmlns:android="<A href="http://schemas.android.com/apk/res/android">http://schemas.android.com/apk/res/android</A>"
  2. android:orientation="vertical"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:id="@+id/myline"
  6. >
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello"
  11. android:textSize="30sp"
  12. android:textColor="@color/white"
  13. />
  14. </LinearLayout>

整體來說,代碼並不是太難,很容易理解,Menu和其中設置等一些操作需要我們注意!

Copyright © Linux教程網 All Rights Reserved