android:shadowColor="@color/purple_200" 设置阴影颜色
android:shadowRadius="0.1" 阴影模糊度
android:shadowDy="10" 阴影偏移在竖直方向偏移
android:shadowDx="10" 阴影偏移在竖直方向偏移
使文字链接化
textView的属性
android:autoLink="all"
更多样式的TextView
使用shape可以完成自己想要的样式
首先得在drawable下定义一个shape的文件,如
然后自己写个名字就ok了,其他默认
代码粘贴如下
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="30dp">corners>
<solid android:color="@color/green">solid>
<padding android:left="5dp"
android:right="5dp"/>
<gradient android:startColor="@color/green"
android:endColor="@color/white"
android:angle="0"/>
shape>
然后在自己想要用到的TextView的background属性加上这个就OK了.
效果如图:
具体详情见博客:https://www.jianshu.com/p/ef734937b521
关键
android:ellipsize="marquee"
//在哪里省略文本,marquee表示跑马灯效果
android:singleLine="true"
//内容单行显示
android:focusable="true"
//移动光标时 是否能聚焦到组件上,比如按钮,就是移动光标是按钮会变成选中状态
android:marqueeRepeatLimit="marquee_forever"
//这个是字幕动画重复的次数
到这就是必要代码结束了
android:clickable="true"
//这个是点击事件,表示点击之后,这个跑马灯开始进行
anroid:focusableInTouchMode="true"
//通过触摸获取焦点
如果需要他一运行就能开始跑马灯的运行,则定义一个自己定义一个类继承textView.如:
public class newTestView extends androidx.appcompat.widget.AppCompatTextView {
public newTestView(Context context) {
super(context);
}
public newTestView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public newTestView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean isFocused() {
//获取焦点,让代码自动跑起来
return true ;
}
}
或者请求到这个焦点加在textVIew里面加上<requestFocus/>,
注意不是加在属性里面,是在标签里面<TextView>TextView>
按钮
事件:
按钮继承于textView
解决按钮在刚开始学android不能改变背景颜色的问题
在这个文件
这一行加上Bridge就欧克了。
怎么使用按钮的一些事件呢?
先在drawable里面定义一个选择器,选择器内容如下
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_baseline_account_box_24" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_launcher_foreground" />
selector>
在使用按钮的地方调用这个drawable,即可使用其他的背景色的变化设置也是如此,不过是color了,如:
<item android:color="@color/green" android:state_pressed="true"/>
<item android:color="@color/purple_200" />
在颜色上面,分为三层,第一层是foreground,第二层是文字,第三层是background,只有可能第一层的颜色就会遮住后面的颜色。
点击事件
Button btn = findViewById(R.id.center);
//设置点击事件
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e(TAG, "onClick: ");
}
});
在调用函数结束后,如果使用的是return true,会将事件消费,不会执行其他触发函数。所以一般用return false.
还可以在xml的button控件里面直接设置事件,如:
<Button
android:id="@+id/center"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/btn_sec"
android:layout_centerInParent="true"
android:backgroundTint="@color/color_sec"
android:onClick="click"
/>
然后再mainactivity里面定义click函数,效果同上。
EditTexthint 输入提示
textColorHint输入提示文字的颜色
inputType 输入类型
drawableXxxx 在输入框的指定方位添加图片
drawablePadding 设置图片与输入内容的间距
paddingXxx 设置内容与边框的间距
background
android:selectAllOnFocus="true"获取焦点时全选
例子:
<EditText
android:id="@+id/username"
android:layout_width="200dp"
android:layout_height="40dp"
android:ems="10"
android:inputType="textPersonName"
android:hint="请输入用户名"
android:drawableLeft="@drawable/ic_baseline_person_24"
android:drawablePadding="10dp"
android:background="@color/white"
android:textColorHint="#95a1aa"
app:layout_constraintBottom_toTopOf="@+id/guideline9"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline8"
app:layout_constraintVertical_bias="0.833" />
然后在java代码中获取所输入的数据,通过button的点击事件,java代码如下:
public class MainActivity extends AppCompatActivity {
Button btn;
EditText et;
EditText et2;
String TAG = "系统";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.login);
et = findViewById(R.id.username);
et2 = findViewById(R.id.password);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = et.getText().toString();
Log.e(TAG, "成功登录!" );
if(name == "admin"){
}
}
});
}
然后如果你是多行输入文本内容,在Edit控件里面直接加入
android:inputType=“textMultiLine”,然后设置一下最大行数,
android:maxLines=“5”,
然后改变一下Edit的样式,需要在drawable里面加入一个xml文件
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#EFEFEF"/>
<corners
android:radius="3dip"
/>
<stroke
android:width="0.5px"
android:color="#505050"/>
shape>
item>
layer-list>
然后Edit控件里面用background属性加上就可以。
然后设置光标在左上角,否则默认是居中的。
android:gravity="top"
然后设置文本选中的颜色是
textColorHighlight属性
属性有:
src 图片资源
scaleType 图片缩放类型
maxHeight 最大高度
maxWidth 最大宽度
adjustViewBounds 调整View的界限
这个自己去调试,博主比较懒
ProgressBar进度条属性有:
max; 进度条的最大值
progress; 进度条已完成进度值
indeterminate; 如果设置为true , 则进度条不精确显示进度
style=“?android:attr/progressBarStyleHorizontal” 设置水平进度条
例子是按钮点击来进行进度条的显示与隐藏
首先得了解Android view getVisibility()函数
(1)0 -------- VISIBLE 可见
(1)4 -------- INVISIBLE 不 可见但是占用布局空间
(1)8 -------- GONE 不 可见也不占用布局空间
有个地方需要注意:只有在oncreate函数之后才能使用findById方法
java部分代码如下
btn_pro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(progressBar.getVisibility() == View.GONE){
progressBar.setVisibility(View.VISIBLE);
}
else{
progressBar.setVisibility(View.GONE);
}
}
});
或者制作一个水平的进度条。当你点击按钮时,进度增加,当进度完成后,进度条消失
代码如下:
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if(Bar.getVisibility() == View.GONE){
Bar.setVisibility(View.VISIBLE);
Bar.setProgress(0);
return;
}
int progress = Bar.getProgress();
if(progress < Bar.getMax()){
progress += 10;
Bar.setProgress(progress);
}
else Bar.setVisibility(View.GONE);
}
});
d出警告
初级开发时的Attention:
要在下图中加入<activity android:name=".intro">activity>
name里面是你自己对应页面的class。
2. 再就是字符串的比较,还是用equals()函数,直接用== ,会比较不成功。
3.在自己新加页面与一个类绑定时,实现按钮点击然后跳转。
不仅要写
Intent i = new Intent();
i.setClass(MainActivity.this,intro.class);
startActivity(i);
setClass前面是当前类,后面是你要跳转的控制类。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)