目录

一:前言

二:文本框组件

三:编辑框组件

四:按钮组件

4.1 匿名内部类监听器

4.2 onClick属性实现

4.3 图像按钮(Imagebutton)

4.4 单选按钮(radioButton)

4.5 复选框按钮(CheckBox)

五:日期选择器(DatePicker)

六:时间选择器(timePicker)

七:计时器 (Chronometer)

八:进度条组件(progressBar)

九:拖动条组件(seekBar)

十:星级评分条(RatingBar)

十一:图像视图(ImageView)

十二:网格视图适配器(GridView)

12.1 适配器

12.2 适配器的种类

十三:下拉列表框(Spinner)

13.1 xml文件设置下拉列表

13.2 适配器模式设置下拉列表

十四:列表视图

14.1 xml文件设置列表视图

14.2 适配器模式设置列表视图

十五:滚动视图


一:前言

我们在布局管理器中已经知道了ImageView、TextView、Button等组件,在这里我们将会详细的介绍Android中基本组件。

二:文本框组件

文本框组件的作用是在页面中添加一些文本信息

文本框的基本代码

<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/login"android:textSize="19sp"android:textColor="#FF0000"android:singleLine="true"android:maxWidth="180dp"/>

三:编辑框组件

编辑框组件的作用是提供给用户输入一些信息

<EditTextandroid:id="@+id/it"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="密码"android:inputType="textPassword"android:drawableLeft=""android:drawableRight=""android:drawableBottom=""android:drawabletop=""android:drawablePadding=""
<!--            向下拖动-->android:lines=""/>

我们可以在java类中通过

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);EditText editText  = findViewById(R.id.it);Editable text = editText.getText();}
}

四:按钮组件

按钮的更多作用时触发事件监听器

4.1 匿名内部类监听器

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button = findViewById(R.id.b1);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this,"单击了",Toast.LENGTH_SHORT).show();}});}
}

4.2 onClick属性实现

public void onClick(View view){Toast.makeText(MainActivity.this,"单击了",Toast.LENGTH_SHORT).show();}

使用这种方法需要在布局文件中指定声明才能使用

<Buttonandroid:id="@+id/b2"android:onClick="myClick"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="按钮2"/>

4.3 图像按钮(Imagebutton)

<ImageButtonandroid:id="@+id/b2"android:src="@drawable/p1"android:onClick="myClick"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#0000"android:text="按钮2"/>

4.4 单选按钮(radioButton)

单选按钮的xml文件设置

<RadioGroupandroid:id="@+id/button1"android:layout_height="166dp"android:layout_width="79dp"><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="其他"/></RadioGroup><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="提交"/>

java代码

package com.example;import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);RadioGroup radioGroup = (RadioGroup) findViewById(R.id.button1);radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {RadioButton radioButton = findViewById(checkedId);CharSequence text = radioButton.getText();Toast.makeText(MainActivity.this, "性别" + text, Toast.LENGTH_SHORT).show();}});Button button = findViewById(R.id.button2);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {for (int i = 0; i < radioGroup.getChildCount(); i++) {RadioButton r = (RadioButton) radioGroup.getChildAt(i);if(r.isChecked()){Toast.makeText(MainActivity.this, "性别" + r.getText(), Toast.LENGTH_SHORT).show();}}}});}}

4.5 复选框按钮(CheckBox)

复选框按钮的xml文件

<CheckBoxandroid:id="@+id/cb1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="跳水"/><CheckBoxandroid:id="@+id/cb2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="游泳"/><CheckBoxandroid:id="@+id/cb3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="羽毛球"/>

java程序代码

package com.example;import android.view.View;
import android.widget.*;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;public class MainActivity extends AppCompatActivity {CheckBox checkBox;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);checkBox = (CheckBox) checkBox.findViewById(R.id.cb1);checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {}});}
}

五:日期选择器(DatePicker)

xml文件代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:orientation="horizontal"android:layout_height="match_parent"tools:context=".MainActivity"><DatePickerandroid:id="@+id/date"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>

java程序代码

package com.example;import android.app.Activity;
import android.widget.DatePicker;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;import java.util.Calendar;public class MainActivity extends Activity {int year, mouth, data;DatePicker datePicker;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);datePicker = (DatePicker) findViewById(R.id.date);Calendar calendar = Calendar.getInstance();year = calendar.get(Calendar.YEAR);mouth = calendar.get(Calendar.MONTH);data = calendar.get(Calendar.DAY_OF_MONTH);datePicker.init(year, mouth, data, new DatePicker.OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {MainActivity.this.year = year;MainActivity.this.mouth = monthOfYear;MainActivity.this.data = dayOfMonth;show(year,mouth,data);}});}public void show(int year,int mouth,int date){String s = "年:" + year + "月:" + (mouth+1) + "日:" + date;Toast.makeText(MainActivity.this,s, Toast.LENGTH_LONG).show();}
}

六:时间选择器(timePicker)

xml文件代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:orientation="horizontal"android:layout_height="match_parent"tools:context=".MainActivity"><TimePickerandroid:id="@+id/date"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>

java程序代码

package com.example;import android.app.Activity;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;import java.util.Calendar;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TimePicker timePicker = findViewById(R.id.date);//24小时设置timePicker.setIs24HourView(true);timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay, int minute) {String s = "时:"  + hourOfDay + "分" + minute;Toast.makeText(MainActivity.this,s,Toast.LENGTH_LONG).show();}});}
}

七:计时器 (Chronometer)

xml文件代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:orientation="horizontal"android:layout_height="match_parent"tools:context=".MainActivity"><Chronometerandroid:id="@+id/date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#E91E63"android:layout_marginTop="10dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:layout_alignParentRight="true"android:format="已用时间:%s"/></RelativeLayout>

java程序代码

package com.example;import android.app.Activity;
import android.os.SystemClock;
import android.view.WindowManager;
import android.widget.Chronometer;import android.os.Bundle;import java.util.Calendar;public class MainActivity extends Activity {Chronometer chronometer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);chronometer=findViewById(R.id.date);//设置系统时间chronometer.setBase(SystemClock.elapsedRealtime());//设置计时器的格式chronometer.setFormat("%s");//开启计时器chronometer.start();//设置监听器chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {@Overridepublic void onChronometerTick(Chronometer chronometer) {if(SystemClock.elapsedRealtime() - chronometer.getBase() >= 60000){chronometer.stop();}}});}
}

八:进度条组件(progressBar)

水平进度条(实时加载)

圆形进度条(正在加载)

进度条与线程搭配才能实现实施更新,在anroid中handler的作用是给主线程发送消息,因为主线程不支持android的activity在主线程中更新UI。

xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:orientation="horizontal"android:layout_height="match_parent"tools:context=".MainActivity"><ProgressBarstyle="?android:attr/progressBarStyleHorizontal"android:max="100"android:progress="50"android:id="@+id/date"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_marginBottom="30sp"/></RelativeLayout>

java程序代码

package com.example;import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.view.View;
import android.view.WindowManager;
import android.widget.Chronometer;import android.os.Bundle;
import android.widget.ProgressBar;
import android.widget.Toast;
import androidx.annotation.NonNull;import java.util.Calendar;
import java.util.Random;public class MainActivity extends Activity {private ProgressBar progressBar;private int mprogress = 0;private Handler mhandler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);ProgressBar progressBar = findViewById(R.id.date);mhandler = new Handler(){@Overridepublic void handleMessage(@NonNull Message msg) {if(msg.what == 0x111){progressBar.setProgress(mprogress);}else{Toast.makeText(MainActivity.this, "耗时操作完成", Toast.LENGTH_SHORT).show();progressBar.setVisibility(View.GONE);}}};new Thread(new Runnable() {@Overridepublic void run() {while (true){mprogress=dowork();//更新进度条的进度Message m = new Message();if(mprogress < 100){m.what=0x111;mhandler.sendMessage(m);}else{m.what=0x110;mhandler.sendMessage(m);break;}}}private int dowork() {mprogress+= Math.random()*10;try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}return mprogress;}}).start();}
}

九:拖动条组件(seekBar)

实现一个图片的透明度

xml文件代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:orientation="vertical"android:layout_height="match_parent"tools:context=".MainActivity"><ImageViewandroid:id="@+id/img"android:layout_width="match_parent"android:layout_height="500dp"android:src="@mipmap/ic_launcher"/><SeekBarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/date"android:max="10"android:layout_alignParentBottom="true"android:thumb="@mipmap/ic_launcher"android:progress="5"/></LinearLayout>

java程序代码

package com.example;import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.view.View;
import android.view.WindowManager;
import android.widget.*;import android.os.Bundle;
import androidx.annotation.NonNull;import java.util.Calendar;
import java.util.Random;public class MainActivity extends Activity {private ImageView imageView;private SeekBar seekBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);imageView = findViewById(R.id.img);seekBar = findViewById(R.id.date);seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {imageView.setImageAlpha(progress);}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});}
}

十:星级评分条(RatingBar)

xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:orientation="vertical"android:layout_height="match_parent"tools:context=".MainActivity"><RatingBarandroid:id="@+id/ratebar"android:layout_width="wrap_content"android:layout_height="wrap_content"android:numStars="5"android:rating="2"android:stepSize="0.5"android:isIndicator="false"/></LinearLayout>

java程序代码

package com.example;import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.view.View;
import android.view.WindowManager;
import android.widget.*;import android.os.Bundle;
import androidx.annotation.NonNull;import java.util.Calendar;
import java.util.Random;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);RatingBar ratingBar = findViewById(R.id.ratebar);//刚开始几颗星星String s = String.valueOf(ratingBar.getRating());Toast.makeText(this, "Rating:" + s, Toast.LENGTH_SHORT).show();String s1 = String.valueOf(ratingBar.getStepSize());Toast.makeText(this, "StepSize" + s1, Toast.LENGTH_SHORT).show();String s2 = String.valueOf(ratingBar.getProgress());Toast.makeText(this, "getProgress" + s2, Toast.LENGTH_SHORT).show();}
}

十一:图像视图(ImageView)

xml文件

<ImageViewandroid:layout_width="500dp"android:layout_height="200dp"android:src="@drawable/ic_launcher_background"android:background="#FFFFFF"android:maxWidth="300dp"android:maxHeight="300dp"android:adjustViewBounds="true"
<!--            布局-->android:scaleType="fitXY"
<!--            着色-->android:tint="#FFFF00"android:layout_margin="30dp"/>

java程序代码类似于前面

十二:网格视图适配器(GridView)

12.1 适配器

连接后端数据和前端数据的接口

12.2 适配器的种类

ArrayAdapter:数组适配器将数组的多个值包装成列表项,显示一行文字

SmipleAdapter:简单适配器将list的值包装成列表项

SmipleCusorAdapter:将数据库的内容以列表的形式展示出来

BaseAdapter:对列表项进行定制

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:orientation="vertical"android:layout_height="match_parent"tools:context=".MainActivity"><GridViewandroid:id="@+id/grid"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>

十三:下拉列表框(Spinner)

13.1 xml文件设置下拉列表

<Spinnerandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:entries="@array/str"/>

values资源文件

<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="str"><item>全部</item><item>电影</item><item>图书</item><item>游戏</item></string-array>
</resources>

13.2 适配器模式设置下拉列表

package com.example;import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.*;import android.os.Bundle;
import androidx.annotation.NonNull;import java.util.*;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);String[] s = {"全部","美术","体育","音乐"};ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item,s);arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);Spinner spinner = findViewById(R.id.spi);spinner.setAdapter(arrayAdapter);}
}

十四:列表视图

14.1 xml文件设置列表视图

xml文件

<ListViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:entries="@array/str"/>

values资源文件

<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="str"><item>全部</item><item>电影</item><item>图书</item><item>游戏</item></string-array>
</resources>

14.2 适配器模式设置列表视图

package com.example;import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.*;import android.os.Bundle;
import androidx.annotation.NonNull;import java.util.*;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);String[] s = {"全部","美术","体育","音乐"};ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,s);arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);ListView listView = findViewById(R.id.img1);listView.setAdapter(arrayAdapter);}
}

十五:滚动视图

xml文件垂直滚动

<ScrollViewandroid:id="@+id/img1"android:layout_width="match_parent"android:layout_height="wrap_content"<TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20dp"android:text="@string/movie"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20dp"android:text="@string/music"/>/>

xml文件水平滚动

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:orientation="vertical"android:layout_height="match_parent"tools:context=".MainActivity"><HorizontalScrollViewandroid:id="@+id/img1"android:layout_width="match_parent"android:layout_height="wrap_content"<TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20dp"android:text="@string/movie"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20dp"android:text="@string/music"/>/></LinearLayout>

Android(基本、高级UI组件)相关推荐

  1. Android高级UI组件progressbar进度条

    前两天学习了datepicker日历,time picker时间以及chronrmeter计时器的基础控件,今天浅浅了解一下Android其中的一个高级UI组件progressbar吧,进度条基本是每 ...

  2. Android中所有UI组件基类是,【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity...

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  3. android 界面组件,安卓开发学习周第三篇——Android中的UI组件

    原标题:安卓开发学习周第三篇--Android中的UI组件 在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的.View是绘制在屏幕上的用户能与之交互的一个对 ...

  4. Android开发自定义UI组件

    Android开发自定义UI组件实现红色小球跟随手指移动 要写实现自定义UI组件,要创建一个BallView类,继承View类,在BallView类中创建画笔,然后重写OnDraw()方法和OnTou ...

  5. Android开源介绍-UI组件

    终端的开发,UI的重要性不言而喻,如何快速开发出优雅漂亮的UI,android的一些开源UI组件,提供了很好的参考. 参考: oschina Android UI组件  最火的Android开源项目( ...

  6. android scroller,高级UI第四十四篇:Android Scroller详解

    滚动视图的方法有两种:scrollTo和scrollBy,而Scroller就是它们的辅助工具类,所以Scroller是学好高级UI必不可少的一课. (1)scrollTo.scrollBy.getS ...

  7. Kotlin x Java打造 UI 通用组件三-------高级UI组件定制与解耦设计之HiRefresh

    需求分析: 设计一个下拉刷新组件,能够提供通用的API,并且支持自定义Head.关于这块其实在之前https://www.cnblogs.com/webor2006/p/7989766.html已经有 ...

  8. Android studio的UI组件

    1.文本框组件 掌管文字大小,文字来源,文字是否以行的形式显示,对齐方式居中 9patch图片拉伸不变形,需要放在drawable中 <TextViewandroid:layout_width= ...

  9. 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

最新文章

  1. Delegate和Command Pattern
  2. python快速排序算法详细图解_Python实现桶排序与快速排序算法结合应用示例
  3. 2017年计算机应用题库,2017年自学考试管理系统中计算机应用题库精选试题6
  4. 数学建模学习笔记——相关性分析
  5. Windows Phone开发(13):如何规范用户的输入行为 转:http://blog.csdn.net/tcjiaan/article/details/7341513...
  6. 伪类 选择器优先级
  7. 2022年后人工智能/深度学习八大应用方向
  8. 联想服务器重装2008,联想ThinkSystem机器安装2008R2详细教程
  9. 一文了解 Kubernetes 中的服务发现
  10. JavaScript学习 第三课(三)
  11. LuaTinker向Linux移植成功
  12. Oracle约束的使用
  13. 关于CASE WHEN的多条件汇总问题
  14. 豪越智慧后勤解决方案(教育/高校)
  15. 褚霸:阿里开源四部曲,从拥抱到回报
  16. 机器学习理论知识的自学整理(持续更新,建议收藏)
  17. 肠道重要菌属——Akkermansia Muciniphila,它如何保护肠道健康
  18. LINUX安装KDC服务
  19. 恒达高停车场信息管理系统的分析与设计
  20. 习题5-7 使用函数求余弦函数的近似值 (15 分)

热门文章

  1. 思科3750配置只允许SSH登录
  2. IDEA JetBrains 推出 Mono 编程字体真牛逼,更适合程序开发人员!
  3. java+selenium 获取QQ邮箱所有邮件列表信息以及某个邮件信息(springboot)
  4. “抛砖引玉”晒Jncip-sp证书寻Jncie-sp战友
  5. 【IDA*】codevs 2495:水叮当的舞步
  6. 效哥带你读懂Access数据库文件恢复提取技术
  7. GeoServer发布影像金字塔并leaflet加载
  8. GIF制作动图gif软件下载安装及使用
  9. deform conv torch 1.7编译安装
  10. DB Brower for Sqlite更新