系列文章目录
文章目录
一、UI开发
控件
1、TextView
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is TextView"
android:gravity="center"
/>
android:gravity=“xxx”:可以设置文字的对齐方式,可选值有 top, bottom, right, left, center 等,中间可以用 | 分割。
android:textSize=“24sp”:文字大小使用sp作为单位
android:textColor="#00ff00":指定文字的颜色
2、Button
可以用 android:textAllCaps="false"禁用自动大写转换
3、EditText
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Type something here"
android:maxLines="2"
tools:ignore="Autofill,HardcodedText,TextFields" />
/>
其中tools:ignore 是为了解除警告
4、ImageView
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imgae_view"
android:src="@drawable/img_1"
tools:ignore="ContentDescription"
/>
图片资源存放在res/drawable-xhdpi 目录下
图片显示:
imageView.setImageResource(R.drawable.img_2);
5、
为了代码更加清楚,可以用接口的方式重写activity:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//添加按钮点击时的逻辑
}
}
6、ProgressBar
用于在用户界面上显示一个进度条,可以通过setVisibility() 方法来设置进度条的可见性,可传入View.VISIBLE、View.INVISIBLE、View.GONE 三种状态。getVisibility() 方法可以获得控件的状态。
View.GONE 表示不可见并且不占用屏幕空间。
View.INVISBLE 表示不可见但是占用屏幕空间,相当于透明。
if(progressBar.getVisibility()==View.GONE) {
progressBar.setVisibility(View.VISIBLE);
} else {
progressBar.setVisibility(View.GONE);
}
通过 style 属性可以指定水平进度条,并且设置100为最大值。
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
可以通过 getProgress() 和 setProgress() 方法来获取和设定当前的进度
int progress = progressBar.getProgress();
progress = progress + 10;
progressBar.setProgress(progress);
7、AlertDialog
可以在当前的界面弹出一个对话框,置顶于所有界面元素之上,能够屏蔽其他控件的交互能力。
8、ProgressDialog
与AlertDialog类似,不同的是它可以显示一个进度条,让用户耐心等待。
二、布局
1. LinearLayout(线性布局)
android:gravity() : 用于指定文字在控件中的对齐方式。
android:layout_gravity() : 用于指定控件在布局中的对齐方式。
android:layout_weight : 使用比例的方式来指定控件的大小,代表权重。
<TextView
android:id="@+id/input_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="Type something"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/send"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Button 1"
android:layout_weight="1"
tools:ignore="ButtonStyle,HardcodedText"
/>
此时 android:layout_width 不再起作用,此时 TextView 和 Button 在水平方向上平分。
宽度自适配,TextView 会自动填满剩下的空间。
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
2.RelativeLayout(相对布局)
相对于父布局定位:
android:layout_alignParentTop=“true”
android:layout_alignParentLeft
android:layout_alignParentBottom
android:layout_alignParentRight
android:layout_centerInParent
相对于控件定位:
android:layout_above="@id/button"
android:layout_toLeftOf
android:layout_toRightOf
android:layout_below
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
3. FrameLayout(帧布局)
应用场景少,所有控件会默认摆放在布局的左上角。
4. 百分比布局
三、自定义控件
引入布局
如下:
<include layout="@layout/title" />
隐藏系统自带标题栏
ActionBar actionbar=getSupportActionBar();
if(actionbar != null) {
actionbar.hide();
}
getSupportActionBar() 方法可以获取ActionBar实例
自定义控件
重新定义一个 TitleLayout 类,并且为两个按钮注册点击事件。
public class TitleLayout extends LinearLayout {
public TitleLayout(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.title, this);
Button titleBack = findViewById(R.id.title_back);
Button titleEdit = findViewById(R.id.title_edit);
titleBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
((Activity) getContext()).finish();
}
});
titleEdit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getContext(), "You clicked Edit button", Toast.LENGTH_SHORT).show();
}
});
}
}
四、ListView
没看懂,等以后有时间或者用到的时候再看吧。。。。
总结
略