项目介绍
项目背景: 在我们生活中已经离不开手机了,而国内大部分手机使用的都是安卓系统。对于自己的手机,大家或多或少都想了解更多,手机是怎么显示的呢?手机显示其实就是很多个像素组成。而你知道手机的像素有多大吗?有多少吗?
项目目标: 解决人们对于手机的疑惑、解决此处省略600字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
项目说明: 项目结构十分复杂,有多复杂呢,一时间也说不清楚,就简单点说,项目是由两个activity的生命周期组成,说到activity就有很多人就不明白了,现在市场上一般的app项目只会写半个activity的生命周期,一个两百人的公司就得编6个月。
可想而知,由两个完整的activity的生命周期组成的app是有多复杂。
项目代码解释
第一个activity的代码:
这个不用多说了,由一个高深的点击事件和晦涩难懂的一些控件绑定构成。不会点击事件的也不必看这篇高深博文了;
去这学懂了点击事件在来:https://blog.csdn.net/weixin_43621608/article/details/105870181
package com.example.sbdx;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity2 extends AppCompatActivity {
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
editText=findViewById(R.id.ed);
Button button=findViewById(R.id.but);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dj();
}
});
}
public void dj(){
Intent intent=new Intent(MainActivity2.this,MainActivity.class);
String s= String.valueOf(editText.getText());
intent.putExtra("sb",s);
Toast.makeText(this,editText.getText(),Toast.LENGTH_LONG).show();
startActivity(intent);
}
}
接下来就是第二个activity了,用到了维特比算法
有限状态机等算法,不会算法的人千万不要强行阅读,否则容易大脑宕机,最好把这篇算法全部看懂再来。
算法
记住千万别强行阅读,后果自负。
package com.example.sbdx;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.example.sbdx.R;
import java.util.Random;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayout = findViewById(R.id.linear_layout);
Intent intent=getIntent();
String a=intent.getStringExtra("sb");
a.trim();
int sb=Integer.parseInt(a);
// int hh = linearLayout.getMeasuredWidth();
// int ww = linearLayout.getMeasuredHeight();
WindowManager wm = (WindowManager) this.getSystemService(this.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
// Toast.makeText(this,hh+"::::"+ww,Toast.LENGTH_LONG).show();
// Toast.makeText(this,width+"::::"+height+":"+sb,Toast.LENGTH_LONG).show();
for (int j=0; j<height/sb; j++){
LinearLayout linearLayout1 = new LinearLayout(this);
LinearLayout.LayoutParams weight1 = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f);
linearLayout.setLayoutParams(weight1);
linearLayout1.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.addView(linearLayout1);
for (int i=0; i<width/sb; i++){
// Toast.makeText(this,"dff",Toast.LENGTH_SHORT).show();
int r = (int) (Math.random()*255);
int b = (int) (Math.random()*255);
int g = (int) (Math.random()*255);
TextView textView = new TextView(this);
textView.setWidth(sb);
textView.setHeight(sb);
textView.setBackgroundColor(Color.rgb(r, g, b));
textView.setLayoutParams(weight1);
linearLayout1.addView(textView);
}
}
}
}
效果展示:
由于界面太多,就不一一展示了。
懂得都懂。。。。。,如果还说没布局文件的那就建议去看看《安卓第一行代码》。