文章目录

  • Android
    • 1. AndroidStudio的安装与卸载
      • 安装后阿里镜像配置(全局配置)
    • 2. UI组件
      • 2.1 线性布局(LinearLayout)
      • 2.2 相对布局(RelativeLayout)
        • 案例:做成如下图案(综合线性布局和相对布局嵌套使用)
      • 2.3 TextView
        • TextView中的主要功能实现案例
      • 2.4 Button
        • 2.4.1 主要部分代码实现(activity_button.xml)
        • 2.4.2 drawable中的自定义背景形状设计
      • 2.5 EditText以及登录页面制作
        • 2.5.1 登录页面制作
        • 2.5.2 页面输入监听
      • 2.6 RadioButton
      • 2.7 CheckBox复选框
      • 2.8 ImageView以及使用第三方库加载资源(glide)
        • 2.8.1 代码实现
        • 2.8.2 使用第三方库加载资源(glide)的步骤
      • 2.9 ListView、GridView
        • 2.9.1 ListView
        • 2.9.2 GridView
      • 2.10 ScrollView、HorizontalScrollView
        • 2.10.1 ScrollView
        • 2.10.2 HorizontalScrollView

Android

1. AndroidStudio的安装与卸载

  • 安装教程参考

安装后阿里镜像配置(全局配置)

  • 第一步:在C:\Users\用户.gradle里面新建init.gradle文件(内容如下)
allprojects{repositories {def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'all { ArtifactRepository repo ->if(repo instanceof MavenArtifactRepository){def url = repo.url.toString()if (url.startsWith('https://repo1.maven.org/maven2')) {project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."remove repo}if (url.startsWith('https://jcenter.bintray.com/')) {project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."remove repo}}}maven {url ALIYUN_REPOSITORY_URLurl ALIYUN_JCENTER_URL}}
}
  • 第二步:修改工程里面的build.gradle配置
buildscript {repositories {maven {url "http://maven.aliyun.com/nexus/content/groups/public/"}jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.3.3'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {maven {url "http://maven.aliyun.com/nexus/content/groups/public/"}jcenter()}
}task clean(type: Delete) {delete rootProject.buildDir
}

2. UI组件

布局里面分为:线性布局、相对布局、表格布局、帧布局
其中最为常用的是:线性布局、相对布局

2.1 线性布局(LinearLayout)

2.2 相对布局(RelativeLayout)

案例:做成如下图案(综合线性布局和相对布局嵌套使用)

  • 如图
    - 代码实现
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.xiaozhuan.helloworld.MainActivity"><!--android:orientation="vertical"--><!-- 上局是将线性布局进行竖直排列(vertical),水平排列为horizontal --><Viewandroid:id="@+id/view_1"android:layout_width="100dp"android:layout_height="100dp"android:background="#000000"/><Viewandroid:id="@+id/view_2"android:layout_width="100dp"android:layout_height="100dp"android:background="#FF0033"android:layout_below="@id/view_1"/><LinearLayoutandroid:id="@+id/ll_1"android:layout_width="match_parent"android:layout_height="200dp"android:orientation="horizontal"android:layout_below="@id/view_2"android:background="#3300FF"android:padding="15dp"><Viewandroid:id="@+id/view_3"android:layout_width="100dp"android:layout_height="match_parent"android:background="#FF0033"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#F7F709"android:padding="10dp"><Viewandroid:id="@+id/view_4"android:layout_width="100dp"android:layout_height="match_parent"android:background="#09F768"android:layout_marginRight="10dp"/><Viewandroid:id="@+id/view_5"android:layout_width="100dp"android:layout_height="match_parent"android:background="#09F768"android:layout_toRightOf="@id/view_4"/></RelativeLayout></LinearLayout>
</RelativeLayout>

2.3 TextView

  • 常用的功能有:

    1. 显示不下使用…
    2. 文字+icon
    3. 中划线、下划线
    4. 跑马灯
  • 进行Activity跳转到TextViewActivity页面代码实现

注意:新建Activity后需要在AndroidMainfest.xml中注册后才可以使用(AS软件已经在新建的时候自动注册好了)

    private Button mbtnButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mbtnTextView = (Button) findViewById(R.id.btn_textview);mbtnTextView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//跳转到TextViewActivity演示页面Intent intent = new Intent(MainActivity.this,TextViewActivity.class);startActivity(intent);}});}

TextView中的主要功能实现案例

  • 效果图如下
  • 代码实现
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-- 文字大小、颜色 --><TextViewandroid:id="@+id/tv_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/app_tv_1"android:textColor="#000000"android:textSize="24sp"android:layout_margin="15dp"/><!-- 显示不下使用... --><TextViewandroid:id="@+id/tv_2"android:layout_width="100dp"android:layout_height="wrap_content"android:maxLines="1"android:ellipsize="end"android:text="小传在奔跑"android:textColor="#000000"android:textSize="24sp"android:layout_marginLeft="15dp"/><!-- 文字+icon --><TextViewandroid:id="@+id/tv_3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:drawablePadding="5dp"android:drawableRight="@drawable/icon_arrow"android:text="筛选"android:textColor="#000000"android:textSize="24sp"android:layout_marginLeft="15dp"android:layout_marginTop="15dp"/><!-- 中划线 --><TextViewandroid:id="@+id/tv_4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="小传在奔跑"android:textColor="#000000"android:textSize="24sp"android:layout_marginLeft="15dp"android:layout_marginTop="15dp"/><!-- 下划线 --><TextViewandroid:id="@+id/tv_5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="小传在奔跑"android:textColor="#000000"android:textSize="24sp"android:layout_marginLeft="15dp"android:layout_marginTop="15dp"/><!-- 下划线 --><TextViewandroid:id="@+id/tv_6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#000000"android:textSize="24sp"android:layout_marginLeft="15dp"android:layout_marginTop="15dp"/><!-- 跑马灯 --><TextViewandroid:id="@+id/tv_7"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#FFFF00"android:text="小传在奔跑 小传在奔跑 小传在奔跑"android:textColor="#FF0000"android:textSize="24sp"android:singleLine="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:focusable="true"android:focusableInTouchMode="true"android:layout_marginLeft="15dp"android:layout_marginTop="15dp"/>
</LinearLayout>

2.4 Button

  • 常用的功能有:

    1. 自定义背景形状
    2. 自定义按压效果
    3. 点击事件
  • 效果图

2.4.1 主要部分代码实现(activity_button.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="10dp"><!-- 文字大小、颜色 --><Buttonandroid:id="@+id/btn_1"android:layout_width="match_parent"android:layout_height="40dp"android:text="按钮1"android:background="#FF3300"android:textSize="20sp"android:textColor="#FFFFFF"/><!-- 自定义背景形状 --><Buttonandroid:id="@+id/btn_2"android:layout_width="match_parent"android:layout_height="40dp"android:layout_below="@id/btn_1"android:text="按钮2"android:textSize="20sp"android:textColor="#FFFFFF"android:background="@drawable/bg_btn2"android:layout_marginTop="10dp"/><Buttonandroid:id="@+id/btn_3"android:layout_width="match_parent"android:layout_height="40dp"android:layout_below="@id/btn_2"android:text="按钮3"android:textSize="20sp"android:textColor="#FF9900"android:background="@drawable/bg_btn3"android:layout_marginTop="10dp"/><!-- 自定义按压效果 --><Buttonandroid:id="@+id/btn_4"android:layout_width="match_parent"android:layout_height="40dp"android:layout_below="@id/btn_3"android:text="按钮4"android:textSize="20sp"android:textColor="#FFFFFF"android:onClick="showToast"android:background="@drawable/bg_btn4"android:layout_marginTop="10dp"/><!-- 点击事件 --><TextViewandroid:id="@+id/textview_1"android:layout_width="match_parent"android:layout_height="60dp"android:layout_below="@id/btn_4"android:layout_marginTop="10dp"android:background="#3C8DC4"android:text="文字"android:textSize="28sp"android:gravity="center"android:textColor="#FFFFFF"/>
</RelativeLayout>

2.4.2 drawable中的自定义背景形状设计

  • shape的基本属性

    1. corners:定义圆角
    2. gradient:定义渐变色,可以定义两色渐变和三色渐变,及渐变样式
    3. solid:填充内部颜色
    4. stroke:描边属性,可以定义描边的宽度,颜色,虚实线等
  • 按钮2的圆角填充实现:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#FF9900"/><!-- 设置矩形边拐角度 --><corners android:radius="10dp"/></shape>
  • 按钮3描边实现:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><strokeandroid:width="1dp"android:color="#FF9900"/><corners android:radius="10dp"/></shape>
  • 按钮4按压效果实现:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"><shape><solid android:color="#8AB34D"/><corners android:radius="10dp"/></shape></item><item android:state_pressed="false"><shape><solid android:color="#F79709"/><corners android:radius="10dp"/></shape></item></selector>
  • 点击事件实现
public class ButtonActivity extends AppCompatActivity {private Button mBtn3;private TextView mTv1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_button);mBtn3 = (Button) findViewById(R.id.btn_3);mBtn3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(ButtonActivity.this,"btn3被点击了",Toast.LENGTH_SHORT).show();  //short是1秒钟,long是2秒钟}});mTv1 = (TextView) findViewById(R.id.textview_1);mTv1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(ButtonActivity.this,"tv_1被点击了",Toast.LENGTH_SHORT).show();}});}public void showToast(View v) {Toast.makeText(this,"btn4被点击了",Toast.LENGTH_SHORT).show();}
}

2.5 EditText以及登录页面制作

EditText就是用户可以进行点击输入信息的属性

  • 主要属性:

    • 1.hint:用于显示提示信息
    • 2.inputType:输入信息的格式(number就是只能输入数字,textPassword输入不可见密码形式)

2.5.1 登录页面制作

页面效果:
- 页面代码实现:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="15dp"><EditTextandroid:id="@+id/et_1"android:layout_width="match_parent"android:layout_height="50dp"android:hint="用户名"android:textSize="16sp"android:maxLines="1"android:textColor="#F79709"android:paddingLeft="10dp"android:paddingRight="10dp"android:background="@drawable/bg_login"android:drawableLeft="@drawable/icon_username"android:drawablePadding="5dp"android:layout_marginTop="50dp"/><EditTextandroid:id="@+id/et_2"android:layout_width="match_parent"android:layout_height="50dp"android:hint="密码"android:inputType="textPassword"android:textSize="16sp"android:maxLines="1"android:textColor="#F79709"android:paddingLeft="10dp"android:paddingRight="10dp"android:background="@drawable/bg_login"android:drawableLeft="@drawable/icon_password"android:drawablePadding="5dp"android:layout_below="@id/et_1"android:layout_marginTop="15dp"/><Buttonandroid:id="@+id/btn_login"android:layout_width="match_parent"android:layout_height="50dp"android:text="登录"android:textSize="20sp"android:textColor="#FFFFFF"android:background="@drawable/bg_login_press"android:layout_below="@id/et_2"android:layout_marginTop="20dp"/></RelativeLayout>

2.5.2 页面输入监听

public class EditTextActivity extends AppCompatActivity {private Button mbtnLogin;private EditText mEtUserName;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_edit_text);mbtnLogin = (Button) findViewById(R.id.btn_login);mbtnLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(EditTextActivity.this,"登录成功!",Toast.LENGTH_SHORT).show();}});//        进行用户名输入监听mEtUserName = (EditText) findViewById(R.id.et_1);mEtUserName.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}//输入监听@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {Log.d("editText",s.toString());}@Overridepublic void afterTextChanged(Editable s) {}});}
}

2.6 RadioButton

主要作用:进行设计选择点击

页面效果
- 常用属性以及自定义样式

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="15dp"><RadioGroupandroid:id="@+id/rg_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><RadioButtonandroid:id="@+id/rb_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"android:textSize="18sp"android:textColor="#FFA722"android:checked="true"/><RadioButtonandroid:id="@+id/rb_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"android:textSize="18sp"android:textColor="#FFA722"/></RadioGroup><RadioGroupandroid:id="@+id/rg_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_below="@id/rg_1"android:layout_marginTop="50dp"><RadioButtonandroid:id="@+id/rb_3"android:layout_width="60dp"android:layout_height="40dp"android:text="男"android:gravity="center"android:checked="true"android:textSize="18sp"android:background="@drawable/bg_selector_radiobutton"android:button="@null"/><RadioButtonandroid:id="@+id/rb_4"android:layout_width="60dp"android:layout_height="40dp"android:text="女"android:textSize="18sp"android:background="@drawable/bg_selector_radiobutton"android:button="@null"android:gravity="center"android:layout_marginLeft="15dp"/></RadioGroup></RelativeLayout>

2.7 CheckBox复选框

  • 页面效果图
    - 实现代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="15dp"><TextViewandroid:id="@+id/cb_title1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="你会哪些移动开发:"android:textSize="20sp"android:textColor="#000"/><!-- 使用默认状态下的checkBox --><CheckBoxandroid:id="@+id/cb_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/cb_title1"android:text="Android"android:textSize="20sp"android:layout_marginTop="10dp"/><CheckBoxandroid:id="@+id/cb_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/cb_1"android:text="iOS"android:textSize="20sp"android:layout_marginTop="5dp"/><CheckBoxandroid:id="@+id/cb_3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/cb_2"android:text="H5"android:textSize="20sp"android:layout_marginTop="5dp"/><CheckBoxandroid:id="@+id/cb_4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/cb_3"android:text="其他"android:textSize="20sp"android:layout_marginTop="5dp"/><!-- 自定义checkBox样式 --><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:layout_below="@+id/cb_4"><TextViewandroid:id="@+id/cb_title2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="你的爱好:"android:textSize="20sp"android:textColor="#000"android:layout_marginTop="20dp"/><CheckBoxandroid:id="@+id/cb_5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="编程"android:button="@drawable/bg_checkbox"android:paddingLeft="10dp"android:textSize="20sp"android:textColor="#000"android:layout_marginTop="10dp"/><CheckBoxandroid:id="@+id/cb_6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="其他"android:button="@drawable/bg_checkbox"android:paddingLeft="10dp"android:textSize="20sp"android:textColor="#000"android:layout_marginTop="10dp"/></LinearLayout></RelativeLayout>
  • 自定义CheckBox背景样式设计
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true" android:drawable="@drawable/icon_checkbox_true"/><item android:state_checked="false" android:drawable="@drawable/icon_checkbox_false"/>
</selector>

2.8 ImageView以及使用第三方库加载资源(glide)

  • ImageView的主要属性:src、scaleType

    • 1.src:从drawable中选中你所想要的资源
    • 2.scale:
      • 2.1 fitXY:撑满控件,宽高比可能发生改变
      • 2.2 fitCenter:保持宽高比缩放,直至能够完全显示
      • 2.3 centerCrop:保持宽高比缩放,直至完全覆盖控件,裁剪显示

效果图:

2.8.1 代码实现

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="15dp"><!-- ImageView主要记住src、scaleType属性其中scaleType属性中几个重要的值:fitXY:撑满控件,宽高比可能发生改变fitCenter:保持宽高比缩放,直至能够完全显示centerCrop:保持宽高比缩放,直至完全覆盖控件,裁剪显示--><ImageViewandroid:id="@+id/iv_1"android:layout_width="200dp"android:layout_height="100dp"android:background="#FF7A22"android:src="@drawable/imageview"android:scaleType="fitXY"/><ImageViewandroid:id="@+id/iv_2"android:layout_width="200dp"android:layout_height="100dp"android:layout_below="@id/iv_1"android:background="#FF7A22"android:src="@drawable/imageview"android:scaleType="fitCenter"android:layout_marginTop="10dp"/><ImageViewandroid:id="@+id/iv_3"android:layout_width="200dp"android:layout_height="100dp"android:layout_below="@id/iv_2"android:layout_marginTop="10dp"android:background="#FF7A22"android:src="@drawable/imageview"android:scaleType="centerCrop"/><ImageViewandroid:id="@+id/iv_4"android:layout_width="200dp"android:layout_height="100dp"android:layout_below="@id/iv_3"android:layout_marginTop="10dp"android:background="#FF7A22"android:scaleType="centerCrop"/></RelativeLayout>

注意:其中上面的第四张图是通过加载网络图片而显示的(@+id/iv_4)

2.8.2 使用第三方库加载资源(glide)的步骤

  • 1.在AndroidManifest.xml中开启网络权限
    - 2.代码示例
public class ImageViewActivity extends AppCompatActivity {private ImageView iMage;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_image_view);iMage = (ImageView) findViewById(R.id.iv_4);Glide.with(this).load("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3120161399,505234538&fm=26&gp=0.jpg").into(iMage);}
}

2.9 ListView、GridView

2.9.1 ListView

  • 步骤一:创建好ListViewActivity后进行xml布局
  • 步骤二:新建一个Adapter适配器MyListAdapter(继承BaseAdapter)
public class MyListAdapter extends BaseAdapter {private Context mContext;private LayoutInflater mLayoutInflater;public MyListAdapter(Context context) {this.mContext = context;mLayoutInflater = LayoutInflater.from(context);}@Overridepublic int getCount() {return 10;}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}static class ViewHolder {public ImageView imageView;public TextView tvTitle,tvTime,tvContent;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder = null;if(convertView == null) {convertView = mLayoutInflater.inflate(R.layout.layout_list_item,null);holder = new ViewHolder();holder.imageView = (ImageView) convertView.findViewById(R.id.iv);holder.tvTitle = (TextView) convertView.findViewById(R.id.tv_title);holder.tvTime = (TextView) convertView.findViewById(R.id.tv_time);holder.tvContent = (TextView) convertView.findViewById(R.id.tv_content);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}//给控件赋值holder.tvTitle.setText("盲僧");holder.tvTime.setText("2020-3-1");holder.tvContent.setText("我用双手成就你的梦想");Glide.with(mContext).load("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3120161399,505234538&fm=26&gp=0.jpg").into(holder.imageView);return convertView;}
}
  • 步骤三:在layout文件下面新建layout_list_item文件(也就是对上面MyLIstAdapter的单个convertView进行布局设置)
    配置如下:
    * 步骤四:设置每个convertView点击监听事件
public class ListViewActivity extends AppCompatActivity {private ListView mLv1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_list_view);mLv1 = (ListView) findViewById(R.id.lv_1);mLv1.setAdapter(new MyListAdapter(ListViewActivity.this));//点击事件监听mLv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(ListViewActivity.this,"点击 pos "+position,Toast.LENGTH_SHORT).show();//或者实现页面点击跳转(略)}});//长按事件监听mLv1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(ListViewActivity.this,"长按 pos "+position,Toast.LENGTH_SHORT).show();return true;}});}
  • 步骤五:设置点击效果(listSelector属性设置自定义样式)
    在drawable中新建自定义样式
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true" android:drawable="@color/colorOrange"/><item android:state_selected="true" android:drawable="@color/colorOrange"/>
<!--    <item android:state_focused="true" android:drawable="@color/colorOrange"/>--><!--   不写默认就是false属性  --><item  android:drawable="@color/colorTransparent"  />
</selector>
  • 效果图:

2.9.2 GridView

注释:GridView和ListView的用法差不多,类比即可

部分区别:

2.10 ScrollView、HorizontalScrollView

2.10.1 ScrollView

适用于:当屏幕填充不下时,使用ScrollView可使得屏幕上下滚动

注意: 使用ScrollView时内置布局只能时单个的,不能有并列布局
例如:
ScrollView中内置的是单个LinearLayout布局,然后LinearLayout里面再可以进行并列使用多个Button

2.10.2 HorizontalScrollView

适用于:当屏幕左右填充不下时,使用HorizontalScrollView可使得屏幕左右滚动

注意: HorizontalScrollView与ScrollView的用法类似,使用HorizontalScrollView时内置布局只能时单个的,不能有并列布局

例如:

  • 代码实现:
<HorizontalScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_text3"android:layout_width="200dp"android:layout_height="wrap_content"android:text="test3"android:textAllCaps="false"/><Buttonandroid:id="@+id/btn_text4"android:layout_width="200dp"android:layout_height="wrap_content"android:text="test4"android:textAllCaps="false"/><Buttonandroid:id="@+id/btn_text5"android:layout_width="200dp"android:layout_height="wrap_content"android:text="test5"android:textAllCaps="false"/></LinearLayout></HorizontalScrollView>

Android(一)相关推荐

  1. Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程

    首先下载并安装安卓SDK和java的JDK 安卓sdk下载: http://www.android-studio.org/ 也可以在这下载: 链接:http://pan.baidu.com/s/1bp ...

  2. Android 的NDK的Makefile编写

    Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...

  3. Android Animation (安卓动画)概念简介

    Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...

  4. 基于Android和SpringBoot的购物App

    (Shopping)购物应用商城 本软件使用Android和SpringBoot.JavaWeb技术实现:并结合百度LBS平台的SDK.支付宝App支付客户端SDK.MobTech的ShareSDK: ...

  5. Android数据持久化:SharePreference

    SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...

  6. Android数据持久化:文件存储

    数据持久化: 数据可分为瞬时数据和关键数据.保存在内存之中的数据是瞬时数据,而对于一些关键性数据,后期需要持续使用的,应当保存在存储设备中: 持久化保存方式: 文件存储.SharePreference ...

  7. Android Studio中RecycerView依赖库加载问题

    依赖包导入思考: 参考资料:recycleview导包问题 打开修改本项目中的build.gradle; 切勿着急添加包,应当提前查看其中的版本号(因为加载的v7包要和其版本保持一致性): 例如: 因 ...

  8. Android布局优化之include、merge、ViewStub

    include:引入重复使用的相同布局 merge:减少include布局的层级,将子元素直接添加到merge标签的parent中 ViewStub:其实就是一个宽高都为0的一个View,它默认是不可 ...

  9. Android动画之帧动画和补间动画

    Android系统提供三种动画:帧动画.补间动画和属性动画.这里先分析总结帧动画和补间动画. FrameAnimation 帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建帧动画可以用 x ...

  10. Android系统的启动过程

    Android系统的启动过程可以简单地总结为以下几个流程: 加载BootLoader -> 初始化内核 -> 启动init进程 -> init进程fork出Zygote(孵化器)进程 ...

最新文章

  1. 腾讯面试:bitmap统计元素出现次数,使用较少内存
  2. 第49课 大大大(纯小数变整数) 《小学生C++趣味编程》
  3. realsense d435i 跑 vins-fusion
  4. python QTreeWidgetItem下面有几个子tree_非常干货:Python 探针实现原理
  5. js 转php json string,JS里字符串转json方法总结
  6. 用java编写一个故事的程序_使用Java怎么编写一个递归程序
  7. mysql常用语句之DQL:查询语句
  8. 关闭Win 11自动更新工具
  9. 05_经典电影台词(一)
  10. 极限、连续、导数与微分
  11. 局域网即时通讯软件_企业即时通讯软件需要符合哪些要求?
  12. html如何设置滚动动画,滚动条触发CSS3动画
  13. 智能微型断路器集计量,保护,控制于一体让用电更安全更智能-安科瑞 汤婉茹/孟强荣
  14. 什么是koa洋葱模型?
  15. Origami Airplanes Folds In 3D:非常给力的3D折纸应用
  16. 在 Win10 上安装 Redis 4.0 的两种姿势
  17. 用HTML里面的表格制作可以下拉的导航栏,excel表格中下拉菜单制作有什么方法
  18. ImageJ如何测量物体的面积大小
  19. [Objective-C]第二天
  20. Apache POI官方文档

热门文章

  1. iPad----------教你如何查询ipad型号
  2. JSD-2204-VueCLI-Day01
  3. 【转】VB6和VB.NET的区别
  4. Unity Game Cloud
  5. GIS空间分析实验教程期末重点91012
  6. 今天是2019年最后一天,全球金融危机,离我们已经过去十年了
  7. 40网桥的基本概念及其原理
  8. php怎么生成一个文件夹里,php创建文件夹目录的教程
  9. CANOE使用三:不用diva也能自动化测试UDS(创建TestModule-搭配Panel界面及使用Capl识别配置文件TXT编写基于14229的UDS自动化测试流程)
  10. 魔兽UI跟随鼠标移动