清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
package com.aruis.android.androidhomework1 import android.app.Activity import android.graphics.Color import android.os.Bundle import android.util.DisplayMetrics import android.util.TypedValue import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import android.widget.LinearLayout.LayoutParams import android.widget.TextView public class MainActivity extends Activity { TextView textView; List buttonContents = [ [E.AC, E.PN, E.PER, E.DIVIDE], [E.SEVEN, E.EIGHT, E.NINE, E.MULTIPLY], [E.FOUR, E.FIVE, E.SIX, E.MINUS], [E.ONE, E.TWO, E.THREE, E.PLUS], [E.ZERO, E.POINT, E.EQUAL] ] List buttonList = []; Long zeros = 1000000000000000 Long zeros00 = zeros * 100 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.activity_main) DisplayMetrics dm = new DisplayMetrics() getWindowManager().getDefaultDisplay().getMetrics(dm) LayoutParams linearLayoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, 0, 1) LayoutParams layoutParams_zero = new LayoutParams(0, LayoutParams.MATCH_PARENT, 2) LayoutParams layoutParams = new LayoutParams(0, LayoutParams.MATCH_PARENT, 1) textView = findViewById(R.id.textView) text = '0' int i = 0 buttonContents.each { LinearLayout _layout = new LinearLayout(this); _layout.orientation = LinearLayout.HORIZONTAL _layout.layoutParams = linearLayoutParams int j = 0 it.each { e -> MyButton btn = new MyButton(this, e); btn.layoutParams = e == E.ZERO ? layoutParams_zero : layoutParams btn.textSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20, dm) if (j == 3 || (i == 4 && j == 2)) { btn.backgroundResource = R.drawable.button_style_right btn.textColor = Color.WHITE } else if (i == 0) { btn.backgroundResource = R.drawable.button_style_top } else { btn.backgroundResource = R.drawable.button_style } btn.setOnClickListener(clickListener) buttonList.add(btn) _layout.addView(btn) j++ } ViewGroup contentParent = (ViewGroup) findViewById(16908290); //可以取得 activity_main.xml指定的布局 LinearLayout _view = contentParent.getChildAt(0) _view.addView(_layout) i++ } } /** * 计算功能未实现 */ View.OnClickListener clickListener = new View.OnClickListener() { @Override void onClick(View view) { E data = view.data; switch (data) { case E.AC: text = '0' break case E.PN: if (text.indexOf('-') == 0) text = text.substring(1) else text = '-' + text break case E.PER: text = text != '0' ? (text.toFloat() * zeros) / zeros00 : '0'//逻辑尚有bug break case E.POINT: if (text.indexOf('.') > -1) break; case (E.POINT..E.NINE): if (text == '0' && data.toString() != '.') text = data.toString() else text += data.toString() break } } } def setText(String s) { textView.text = s } String getText() { return textView.text } }