我們想要調色,首先創建一個ColorActivity
,那他的xml
如上圖。
設計成一個HorizontalScrollView
,水平滾動視圖,是一個可以水平方向滾動的佈局容器,允許它大於物理顯示。
水平滾動視圖(HorizontalScrollView)
是一個框佈局(FrameLayout)
,這意味著你應該將一個包含全部滾動內容的子項放進去。
該子項本身可以是一個帶有複雜對象的佈局管理器(layout manager)
。
for (Colors color : Colors.values())
這是指,foreach
也就是color
這個變數會跑Colors
這個class
裡面的所有values
。
再來code
建button
。
LinearLayout.LayoutParams layout =
new LinearLayout.LayoutParams(128, 128);
我們的大小為設置(height:128,width:128)
。
layout.setMargins(6, 6, 6, 6);
邊距。
button.setId(color.parseColor());
button.setLayoutParams(layout);
button.setBackgroundColor(color.parseColor());
button.setOnClickListener(listener);
color_gallery.addView(button);
button
以顏色來設置id
。layout
塞入button
。button
設計顏色。button
註冊觸發事件。button
加入畫面View
中(linearlayout)
。
寫一個class ColorListener
實作View.OnClickListener
。
String action = ColorActivity.this.getIntent().getAction();
if (action!=null&&action.equals("android.intent.action.CHOOSE_COLOR")) {
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(ColorActivity.this).edit();
editor.putInt("DEFAULT_COLOR", view.getId());
editor.commit();
finish();}
action
=拿到intent
過來的動作。"android.intent.action.CHOOSE_COLOR"
,這個自己加的action
是的話,繼續往下面。SharedPreferences.Editor
為了存入值,key為"DEFAULT_COLOR"
,value
則是view
拿到的對應Id
。commit
讓SharedPreferences.Editor
溝通(存放)finish()
結束這個Activity
。else {
Intent result = new Intent();
result.putExtra("colorId", view.getId());
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(ColorActivity.this).edit();
editor.putInt("DEFAULT_COLORS", view.getId());
editor.commit();
setResult(RESULT_OK, result);
finish();}
new
一個Intent
。key
為colorId
,value
為使用者點的button
對應到的Id
,也就是我們剛剛設置的Id
。SharedPreferences.Editor
存放,key
為"DEFAULT_COLORS"
,value
一樣是view
拿到的對應Id
。commit
讓SharedPreferences.Editor
溝通(存放)finish()
結束這個Activity
。