Android Studio(项目收获)

news2024/9/29 13:18:14

取消按钮默认背景色

像按钮默认背景色为深蓝色,即使使用了background属性指定颜色也不能生效。

参考如下的解决方法:

修改/res/values/themes.xml中的指定内容如下:

<style name="Theme.TianziBarbecue" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge">

代码方式设置边距

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(0, 16, 0, 16); // 分别为上下左右的外边距
textView.setLayoutParams(layoutParams);

设置控件边框

设置边框步骤:在drawable文件下新建xml文件 >> 设置边框样式 >> 在background属性中引入边框样式

// 1. 设置全边框
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#FFFFFF" />
    <stroke
        android:width="1dp"
        android:color="#000000" />
    <padding
        android:bottom="0.1dp"
        android:left="0.5dp"
        android:right="0.5dp"
        android:top="0dp" />
</shape>


// 2. 设置部分边框
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 连框颜色值 -->
    <item>
        <shape>
            <solid android:color="#000000" />
        </shape>
    </item>
    <!-- 主体背景颜色值 -->
    <item android:top="1dp">   <!--设置只有底部有边框-->
        <shape>
            <solid android:color="#ffffff" />
        </shape>
    </item>
</layer-list>

// 3. 同时设置边框和背景色
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FF0000" />  <!-- 设置背景颜色 -->
    <stroke
        android:width="1dp"
        android:color="#000000" />  <!-- 边框线颜色 -->
</shape>

连接真机(手机)调试

要连接自身的 Android 设备进行测试,需要确保以下步骤已完成:
1. 在 Android 设备上启用开发者选项。
2. 在 Android 设备上启用 USB 调试模式。
3. 使用 USB 电缆将 Android 设备连接到您的计算机,华为手机需要更改USB连接方式为“MIDI”。
4. 在Tools >> Device Manager >> Physical列表找到连接手机并启动即可。

刷新页面

(1) 在Adapter中
dataList.remove(data);
notifyDataSetChanged();
(2) 在Activity中
MyAdapter myAdapter = new MyAdapter(context,data);
listView.setAdapter(MyAdapter); 

水平和竖直可滚动容器

// 水平
<HorizontalScrollView>
	<LinearLayout>
		在这里添加元素
	</LinearLayout>
</HorizontalScrollView>


// 竖直
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <!-- 在这里动态添加子元素 -->
    </LinearLayout>
</ScrollView>

Spinner设置背景色和数据集

// 1. 在layout下新建custom_spinner_item.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FF0000"  <!-- 设置背景颜色 -->
    android:textColor="#000000"   <!-- 设置文本颜色 -->
    android:padding="8dp"
    android:textSize="18sp" />
    
    
// 2. 定义数据集
ArrayList<String> items = new ArrayList<>();
data.add("item1");
data.add("item2");
data.add("item3");

// 3. 创建一个 ArrayAdapter,并为Spinner设置自定义的下拉列表项布局
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.custom_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// 4. 将ArrayAdapter设置为 Spinner 的适配器
Spinner spinner = findViewById(R.id.spinner);
spinner.setAdapter(adapter);

view.setTag传入多值

问题描述:

    如果使用setTag两次及其以上则会造成前后覆盖,即最终只能获取到一个最终传入值;
解决方法:

    当我们需要传入两个以上的变量值时,可以选择对象封装(创建一个内部类,把需要传的变量封装在该类的属性中),然后我们就可以通过setTag(Object)来达到传入多个值的效果;
不可行方法:

    测试过view.setTag(intKey,value)方式,该方式经过测试出现错误(IllegalArgumentException)不能达到效果

底部弹出窗口页面

BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(ChargeUpActivity.this);
View sheetView = getLayoutInflater().inflate(R.layout.cart,null);
cartList = sheetView.findViewById(R.id.cart_list);
CartAdapter cartAdapter = new CartAdapter(ChargeUpActivity.this, orderItemList);
cartList.setAdapter(cartAdapter);

bottomSheetDialog.setContentView(sheetView);

// 设置布局参数
FrameLayout bottomSheet = bottomSheetDialog.findViewById(com.google.android.material.R.id.design_bottom_sheet);
CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) bottomSheet.getLayoutParams();
layoutParams.height = 1400; // 设置高度
bottomSheet.setLayoutParams(layoutParams);
// 清除默认动画效果
Window window = bottomSheetDialog.getWindow();
if (window != null) {
    window.setWindowAnimations(0);
}

// 滑动弹窗页面内容不会关闭弹窗,仅点击弹窗外部区域关闭弹窗
bottomSheetDialog.setCancelable(false);
bottomSheetDialog.setCanceledOnTouchOutside(true);

bottomSheetDialog.show();

计算字符串表达式

(1) 在build.gradle中引入依赖:
dependencies {
    ...
    implementation 'io.github.jarvisjin:fin-expr:1.0.1'
}
(2) 在java中使用
Expression e = new Expression("345000*0.0157");
BigDecimal result = e.calculate(); // result 5416.5000

fragment报错 

关于androidx.fragment.app.Fragment报xxx that is not a Fragment的问题:

首先去检查你调用该Fragment类的那个activity是否是继承于Activity,如果是,那么恭喜你马上找到解决方案了
1、修改继承类Activity为AppCompatActivity或者FragmentActivity
2、重新编译-部署-成功运行

英语词汇

SDK:Software Development Kit(软件开发工具包)		
AVD:Android Virtual Device(安卓模拟装置)
emulator:模拟器		
Tablet:平板		
Wear OS:穿戴操作系统			
manifest:清单			
alert:警报			
toast:弹框(烤面包)		
gravity:偏向(重力)		
hint:提示
inflate:转化			
intent:意图			  
Explicit:显式 		    
implicit:隐式
transaction:事务		 
revert:恢复			
reassgin:重新分配			
extensible:可展开的		
neutral:中立的			
instantiate:实例化

--------------

后言

 在下一节将介绍项目打包成APK的相关知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1181337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4-Tomcat服务器及标准Web项目结构

4-Tomcat服务器及标准Web项目结构 文章目录 4-Tomcat服务器及标准Web项目结构Web服务器组成Web项目的标准结构根目录下可以放置的文件及文件夹WEB标准结构Web的url组成部分和项目中资源的对应关系 Tomcat服务器部署Tomcat部署Web项目的三种方式IDEA部署项目APP到Tomcat的方式概…

响应式编程-基本介绍

响应式编程-基本介绍 什么是响应式编程 响应式宣言&#xff08;The Reactive Manifesto&#xff09; 对响应式系统进行了定义&#xff1a;响应式系统是具备以下特质即时响应性&#xff08;Responsive&#xff09;、回弹性&#xff08;Resilient&#xff09;、弹性&#xff08…

Freeswitch API调用方式

1.API调用方式 可以复制下面内容成.bat文件直接在windows下运行&#xff0c;修改成对应的ip加端口。 echo off SETLOCAL :_starting cls set inputecho echo 1 add agent 21009 11 uuid_check 21009 21 list users 31 check modules …

JAVA中类和对象的认识

1、面向对象的初步认知 1.1 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。面 向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。用面向对象的…

LabVIEW示波器连续触发编程

LabVIEW示波器连续触发编程 niScopeEX Fetch Forever范例利用了如何设置硬件和驱动的优点来进行连续采集。 当NI-SCOPE设备被设置为采集预触发扫描&#xff0c;设备上的板载内存被用作一个环形缓冲。这样&#xff0c;无论触发何时到来&#xff0c;设备都可以追踪和检索所有要求…

Ubuntu开机无法进入系统,文件根系统目录空间不足导致?

前言&#xff1a; 自己电脑上装的是Win11和Ubuntu20双系统&#xff0c;平时就是切换着用。 偶然有次&#xff0c;Ubuntu提示文件根系统目录空间不足&#xff0c;自己没在意。 结果下次开机进入Ubuntu时候&#xff0c;芭比Q了。。进不了系统 这样的事情发生很多次了&#xff0c;…

密度聚类与层次聚类

大家好&#xff0c;我是带我去滑雪&#xff01; 密度聚类&#xff08;Density-based Clustering&#xff09;和层次聚类&#xff08;Hierarchical Clustering&#xff09;是两种不同的聚类方法&#xff0c;用于将数据集中的数据点分组成簇。 目录 一、密度聚类 &#xff08;…

高频时序数据仓库-在线课堂二

详细了解天软高频时序数据仓库的构架及性能后&#xff0c;本周天软在线课堂将带来高频时序数据仓库的应用展示。扫描图片二维码可报名参会。

MATLAB|热力日历图

目录 日历图介绍&#xff1a; 热力日历图的特点&#xff1a; 应用场景&#xff1a; 绘图工具箱 属性 (Properties) 构造函数 (Constructor) 公共方法 (Methods) 私有方法 (Private Methods) 使用方法 日历图介绍&#xff1a; 热力日历图是一种数据可视化形式&#xf…

Pioneer电源维修PM36218B-10P-1-8PH-J

开关电源出现不启振的时候&#xff0c;我们通常需要查看开关频率是否正确、保护电路是否断路、电压反馈电路、电流反馈电路又没问题&#xff0c;开关管是否击穿等。 pioneer电源维修时&#xff0c;PWM模块为UC3843&#xff0c;检测未发现其他异常&#xff0c;在R(220K)上并接一…

美妆行业如何通过自媒体提升品牌曝光

自媒体的出现使美妆行业的推广方式产生了变化&#xff0c;自媒体平台的用户年轻化、用户基数大、消费力较强&#xff0c;能够接受新鲜事物&#xff0c;为美妆品牌带来广阔的市场和消费人群。 因此自媒体平台的内容运营十分重要&#xff0c;今天媒介盒子就来和大家聊聊&#xf…

VBA技术资料MF80:选择文件及文件夹

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

ARPG----C++学习记录03 Section7位置,偏移,函数

Pawn 新建一个Pawn的c类Bird&#xff0c;并且新建一个蓝图 添加一个Capsule&#xff08;胶囊&#xff09; 不知道要加啥头文件&#xff0c;去网站找https://docs.unrealengine.com/5.3/en-US/API/Runtime/Engine/Components/UCapsuleComponent/SetCapsuleSize/ 包含文件名字的头…

【vue3/高德地图】实现地图打点/自定义点位图标/地理围栏实现

<template><div class"app-container"><div id"container"></div></div> </template><script setup> import AMapLoader from amap/amap-jsapi-loader; /*在Vue3中使用时,需要引入Vue3中的shallowRef方法(使用s…

Microsoft Edge浏览器不兼容解决办法

找到 Edge 的安装位置&#xff0c;一般在 C:\Program Files (x86)Microsoft Edge\Application\ 这个目录&#xff0c;把 edge.exe 或msedge.exe 修改为 chrome.exe 再重启电脑。

DocTemplateTool - 可根据模板生成word或pdf文件的工具

你是否经常遇到这样的场景&#xff1a;产品运营有着大量的报告需求&#xff0c;或者给客户领导展现每周的运营报告&#xff1f;这些文档类的任务可以交给运营同事&#xff0c;他们负责文档排版和样式&#xff0c;你作为开发人员你只需要提供数据源&#xff0c;和一个映射表&…

C++ -std 编译标准

概述 任何一门编程语言都有相关的组织和团体在不停的维护和更新。原因很简单&#xff0c;时代在发展&#xff0c;编程语言如果停滞不前&#xff0c;最终就会被淘汰。 以 C 语言为例&#xff0c;发展至今该编程语言已经迭代了诸多个版本&#xff0c;例如 C89 &#xff08;偶尔…

十大字体设计网站年终盘点:顶级设计师独家推荐

即时设计 首款国产的专业 UI 设计工具即时设计&#xff0c;官方字体库内置几十种字体任你选择&#xff0c;例如阿里巴巴惠普体、思源宋体、思源黑体、优设标题黑等&#xff0c;一键点击使用无需下载安装。还能够根据设计内容进行字体粗细调节&#xff0c;从纤细到特粗&#xf…

基准测试详解

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

柱状图:带误差棒

误差棒可以表示样本标准差&#xff0c;也可以表示样本标准误。 导入库&#xff1a; import pandas as pd 自定义用来绘制带误差棒&#xff08;样本标准差或样本标准误&#xff09;的柱状图&#xff1a; def col(y, x, face, df, errprbarstd) : print(ggplot(df.groupby([x…