Android学习笔记

Android学习笔记,第1张

阴影的制作
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函数,效果同上。

EditText

hint 输入提示
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属性

ImageView

属性有:
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前面是当前类,后面是你要跳转的控制类。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/992822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存