一些实现和技巧记录

Linux Shell编程:文件写入和日志记录 文件写入和日志记录是Shell脚本中常见的操作,可以帮助我们记录重要的信息和跟踪脚本的执行过程。在本文中,我们将详细介绍如何在Shell脚本中实现文件写入和日志记录的功能。在Shell脚本中,我们可以使用重定向操作符将输出写入文件来实现日志记录。在上面的示例中,我们将脚本的开始时间和结束时间写入名为script.log的日志文件中。在本文中,我们介绍了如何在Shell脚本中实现文件写入和日志记录的功能。操作符,我们在开始时创建一个新的日志文件,并将内容覆盖写入;操作符,我们将结束时间附加到日志文件的末尾。 阅读详情

1、当对着文档学习 ContextualAction时,照着实现。现在遇到的问题是如何高亮选中的item。这里想到的方法是:在回掉方法中    public boolean onActionItemClicked(ActionMode mode, MenuItem item); 获取到点击所对应的view,View view = mListView.getChildAt(position); 然后设置背景即可,假如选中,view.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_bright)); 假如取消,view.setBackgroundColor(getResources().getColor(android.R.color.transparent));  记得在退出CAB时或回掉onActionItemClicked时,做相应的清理工作,即可。

但是这样做会出现高亮item的错乱。错乱的原因是不正确的了解ListView.getChildAt()方法的用法。它是对于可视界面的View的获取。具体参考http://stackoverflow.com/questions/6766625/listview-getchildat-returning-null-for-visible-children,这个讨论比较清晰的说明了点击item错乱的原因。看来用这种方法来实现多行高亮,会适得其反,反而变得更复杂。干脆在Adapter中加入判断吧,这样就可以简单实现了。

2、android文档中对Drawable资源的描述中,有ClipDrawable,描述是A drawable defined in XML that clips another drawable based on this Drawable's current level. Youcan control how much the child drawable gets clipped in width and height based on the level, as wellas a gravity to control where it is placed in its overall container. Most often used to implementthings like progress bars.结合示例,很好懂。我想实现一个WIFI连接的动态图,即显示一级一级向上的View。一开始在想用自定义的View来实现,由内到外画圆环。这个等到更加熟练操作自定义View再去实现。现在可以用该资源方式实现。

在Drawable文件夹中:

<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/wifi_alpha"
    android:clipOrientation="vertical"
    android:gravity="bottom" >
</clip>

layout文件:

    <ImageView
        android:id="@+id/custom_wifi"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_gravity="center"
        android:src="@drawable/wifi_clip"
        android:contentDescription="custom wifi" >
    </ImageView>

Java文件中循环操作:

	private void initView() {
		new Handler().postDelayed(new Runnable() {
			
			@Override
			public void run() {
				
				ClipDrawable cd = (ClipDrawable) iv.getDrawable();
				if (cd!=null ) {
					if (cd.getLevel() >= MAX_VALUE) {
						cd.setLevel(0);
					}
					cd.setLevel(cd.getLevel()+UNIT_SHOW);
					initView();
				}
			}
		}, DURATION_TIME);
	}

当设置ClipDrawable的Level为最大值时(10000)将会显示全部,这样效果就出来了。


3、ActionBar中的 ShareActionProvider 和 Drop-down Navigation 还是挺好用的。

当使用 Drop-down Navigation时,遇到了这样一个问题:即样式不统一。文档的最后给出的解决方法是:重新定义一下样式

android:actionDropDownStyle
但是,它的parent继承谁?styles.xml中有

Widget.Holo.Light.Spinner.DropDown.ActionBar
但是写进去时编译出错。那就继承

parent="@android:style/Widget.Holo.Spinner"
然后在item子项中设置background,这样spinner的背景可以改变了,但是Spinner的下拉图标没了。参考 http://blog.stylingandroid.com/styling-the-actionbar-part-4/ 的实现,即用图片资源选择器,在不同和状态显示不同的图标和背景,即可解决。

4、系统提供的参数保存框架还是挺好用的,不用自己去写布局和处理保存。它提供了布尔值的CheckBoxPreference、单选项ListPreference、字符串值的EditTextPreference以及可以启动一个Intent等,也可以相互关联。这些对于一般的参数设置已经足够了,同样也可以自定义Preference。因为之前好像没有过多接触到Preference存储框架,所以当直接看android文档时,看得模模糊糊。资料有很多,以下是一些参考理解的资料:

①android文档

②http://www.oschina.net/question/54100_31833

③http://www.cnblogs.com/HackingProgramer/p/4022782.html

④http://blog.sina.com.cn/s/blog_6c762bb301014yme.html

⑤http://www.javacodegeeks.com/2011/01/android-quick-preferences-tutorial.html


5、Drag and Drop这部分介绍了android平台提供的拖动功能,它可以实现数据的拖动和图片的拖动。这部分之前没有接触过,直接去看,又是云中雾中。找到了中文英文的一些资料和例子来结合,有些理解了。一般是在长按或点击时设置view.startDrag(),通知系统要拖放了。对于要监听拖放事件的view来说,要view.setOnDragListener(),回调方法中对视图效果进行切换,对Drag拖放所处的状态进行判断并进行相应的处理,这些在文档中和下列的资料中非常清楚的有记录。

①android文档

②一个例子

③相应的中文翻译文档

6、Android提供了无障碍访问的机制。为的是方便一些有行为障碍的人或者在一些特定情景不能正常使用APP的人。可以使用系统提供的一些准则,比如①Describe user interface controls②Enable focus-based navigation③Custom view controls④No audio-only feedback。其中最容易实现的是,给ImageButton、ImageView、CheckBox提供android:contentDescription属性。也可以实现自己的Accessibility Service,这部分没有去看。

7、Styles and Themes部分清晰的介绍了为什么使用样式和主题,如何使用,如何继承,其中的属性从哪里可以得到。既有实际的例子,也有参考的文档。

8、App Resources这部分介绍了资源的命名规则,android平台如何选择合适的资源文件夹,放置资源时要注意的一些问题,比如提供默认的资源,比如使用别名,比如处理当配置发生变化时(屏幕方向,大小,键盘等)如何处理。这部分在开发中适配各种屏幕的大小,国际化有参考意义。

9、看到Canvas and Drawables 部分了,基本上可以做个暂时的结束。下面还留有Web apps部分,这部分可以找时间再看。其中有涉及到自定义View的绘制、属性动画、视图动画,Canvas and Drawables。其中,文档中介绍了Snake例子。于是,自己实现了大概的。TileView作为父类,抽象了绘画。SnakeView则继承TileView补充和完成Snake的移动和状态。TileView中,在onSizeChanged()方法中得到View的大小,并计算整个屏幕可以分为多少个格子。并在SnakeView中不断更新,更新的频率巧妙的用了Handler类的sendMessageDelay()方法。绘画则是存储在二维数组中的格子中绘制不同的Bitmap。其中,有个需要记录的是。当我按下按键或onTouch时,自定义View无法得到响应。原因是View没有获取到焦点,所以要 view.setFocusable() 和 view.requestFocus() 以获取焦点。完成之后,感到snake游戏的开发其实还是简单的。源码记录下载

10、现在要学习一个CustomView Sample,还是有难度的。即文档中例子 PieChat。难在有一些没有接触过或不记得。如果逐点解决的话,可以尝试下。首先是Paint的setMiskFilter(),MiskFilter其中有个作用即设置Bitmap的模糊状态。而其中Bitmap有个extractAlpha()方法,可以获取Bitmap的Alpha值,而在搭配paint可以制作阴影,一个例子。发现这个PieChat涉及到的东西有些多,稍偏移了学习自定义View的初衷。于是,搜索了下。找到了这么一篇博文,阅读博文和其中的代码,对自定义View和ViewGroup有了进一步的认识。

11、

结语:学习document也不记得前后一共用了多少时间,其中有一些是快速的略过。学习document是找到了源头,之前看到了好一些记录,教程都可以从文档中找到更详细的答案。第一手资料是非常重要的。暂且先这样吧,可以开始学习一些开源的组件了。之后是一些开源项目的模仿学习。要注重效率!

Android平台上实现通话记录检索 在Android系统中,ContentResolver是用于访问和管理ContentProvider提供的数据的接口。ContentProvider是一种数据存储解决方案,它可以存储和检索数据,同时允许其他应用程序访问这些数据。ContentResolver通过URI(统一资源标识符)定位特定的ContentProvider,从而提供对数据的增删改查(CRUD)操作。ContentResolver的设计理念是基于数据抽象的原则,它与ContentProvider配合,实现了一种松耦合的数据访问机制。 阅读详情

相关推荐

STM32超声波避障小车硬件设计与实时测距实现

超声波测距是嵌入式系统中经典的环境感知技术,其原理基于声波在空气中的传播时间与距离的线性关系,通过精确计时实现非接触式距离测量。该技术具备成本低、抗光干扰强、算法简洁等优势,广泛应用于智能小车、机器人避障、液位监测等场景。工程落地的关键在于硬件信号完整性(如5V/3.3V电平匹配)、微秒级定时精度(依赖高稳定外部晶振与输入捕获模式)以及强干扰环境下的数据鲁棒性(需软硬协同滤波)。本文以STM32F103C8T6为平台,深入解析HC-SR04模块的时序闭环控制、TIM3输入捕获双沿测量、L298N电机状态机驱

weixin_42578963的博客 295

Android TextView自定义选中弹出菜单记笔记功能

效果图 两种方案实现 一、 通过onActionItemClicked 完整代码: mManusTv.setCustomSelectionActionModeCallback(new ActionMode.Callback() { @Override public boolean onCreateActionMode(ActionM...

wapchief的博客 4803

西门子S7-200 SMART PLC控制伺服电机

以下是使用西门子S7-200 SMART PLC控制伺服电机的详细程序框架和配置说明,涵盖硬件接线、PLC配置和基本运动控制逻辑。具体实现需根据伺服电机型号(如松下、三菱、台达等)调整参数。通过以上步骤,可实现伺服电机的基础位置控制。实际应用需根据设备机械参数和伺服驱动器手册调整细节。建议在调试时逐步测试脉冲输出和方向信号是否正常。

CHUXUEZHE8210的博客 6425

Android学习

对菜单的学习 Android有三种基本的菜单类型 ●选项菜单OptionsMenu:Activity的主菜单项集合,一般放置对应用有全局影响的操作,如“搜索”“设置”等。 ●上下文菜单ContextMenu:用户长按某元素时出现的浮动菜单,菜单提供的操作仅影响所选内容或上下文。 ●弹出菜单PopupMenu:以垂直列表形式显示一系列菜单项,并且该列表会固定在调用该菜单的视图中,它适用于提供与特定内容相关的操作,如Activity的内容区域相关的扩展操作。 使用XML定义菜单 针对这三种类型的菜单

IDoser29的博客 637

细聊Oracle通过ODBC数据源连接SQL Server数据库

    类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,废话不多说。    我的应用场景:    项目系统使用oracle数据库,与客户的第三方系统供应商实现资源共享,对方为sql server数据库;    我的测试开发环境为64bitwin7PC机,本机上装有64位Oracl...

xueren_83的博客 1万+

启动盘安装Win10完整指南:U盘制作、BIOS设置与分区排错

系统重装是解决电脑卡顿、系统崩溃、病毒残留等问题的基础操作,而U盘启动盘则是目前最主流的安装介质。其核心原理在于通过Rufus等工具,将原版ISO镜像写入U盘,并依据主板固件类型(UEFI或Legacy)选择对应的GPT或MBR分区表,确保引导程序能正确加载。掌握这些底层概念,不仅能提升安装成功率,还能避免因引导模式不匹配导致的黑屏、无法启动等问题。在实际应用中,无论是老旧电脑升级、硬盘更换,还是需要纯净的系统环境,制作一个可靠的启动盘都是必备技能。本文从备份数据、下载官方镜像讲起,逐步演示U盘制作、启动快

weixin_32667955的博客 339

ActionBar

ActionBar是3.0之后出现的控件,取代menu,显示在标题栏位置。 通过getActionBar()得到对象。 1.普通ActionBar 创建方式与Menu(xml创建)一样,不过item中需要设定android:showAsAction属性,不设定就是默认never,item将为menu的item,选择always或者ifRoom将为ActionBar。 右上角为Actio

liu149339750的专栏 4万+

深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践

在异构计算领域,Zynq-7000系列SoC的AMP(Asymmetric Multiprocessing)模式堪称多核编程的瑞士军刀。独立运行环境:CPU0运行Linux,CPU1运行FreeRTOS或裸机程序硬件资源独占:CPU0管理DDR,CPU1使用OCM(片上内存)中断隔离:默认所有中断路由到CPU0这种架构非常适合需要实时响应的工业控制系统——比如用CPU0处理网络通信,CPU1负责电机控制。AMP模式下中断路由的底层原理多维度性能优化技巧工业级可靠性的实现方案。

QQ_778132974的博客 491

Android四种菜单的使用

1. 为什么会有菜单 菜单一般是提供一些设置或是软件信息什么的,移动设备的屏幕不像PC那么大,不可能在屏幕搞一些按键来触发一些平时使用不会经常操作的事件,比如设置软件配置,查看软件信息什么的。这些功能可以添加到菜单选项中,既提供了该功能,又不会占用屏幕空间。(纯属扯淡有木有啊!!!因为我实在想不出要以什么开头写这篇总结)2. 菜单的不同创建方法2.1 动态创建 通过重写Activity中的onCr

tasty 543

YOLO26科研升级:OREPA在线重参数化,让模型精度在训练中持续跃升

在目录下,新建AddModules文件夹,将orepa.py放入其中。

LXY_LOVE36的博客 98

UG\NX二次开发 使用UF_CURVE_create_ocf_feature函数创建“在面上偏置”特征

使用UF_CURVE_create_ocf_feature函数创建“在面上偏置”特征。

王牌飞行员_里海的博客 850

【凯子哥带你夯实应用层】使用ActionMode实现有删除动画的多选删除功能

    转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992     ActionMode是3.0之后。官方推荐的一种上下文菜单的实现方式,在之前一直用的是Context Menu,今天这篇文章简介一下ActionMode,并实现多选删除功能。    假...

weixin_33836223的博客 168

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

关于select中DISTINCT的技巧和使用

偶然在一个论坛看到了一个关于DISTINCT的技巧和用法.是一个版主写的.觉得可能会对一些人有帮助.所以转载而来.方便大家 以下是转载内容 单表的唯一查询用:distinct多表的唯一查询用:group by在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不...

m0_37732829的博客 2万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java历史记录_简单的带历史记录的搜索功能实现

这两天闲来无事,就把前短时间项目中的搜索功能抽取出来,重新写一下,搜索功能虽然简单,但是设计到得知识点也挺多的,就当做一个总结吧。代码地址在最后面,话不多说,上效果图 _searchdemo.gif历史记录的存储首先来说下关于历史记录的存储,历史记录的存储方式其实可以有很多方法,可以用sp,数据库等等,那么就直接开撸吧。说开撸你还真以为就直接开撸了,还是先想想吧,我们做历史记录存储的时候需要提供什...

weixin_36256978的博客 4578

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

在Python Flask中高效实现HTTP请求的日志记录

HTTP请求的日志记录能够提供丰富的信息,包括请求的时间、IP地址、请求的URL、请求的方法(如GET、POST)、请求头、请求体(可选)、响应状态码、响应时间等。总之,在Python Flask中实现HTTP请求的日志记录是一个简单但强大的功能,它能够帮助开发者更好地理解和维护他们的Web应用。随着应用的增长,可能需要更复杂的日志记录策略,比如按级别记录日志、将日志写入文件或数据库、使用第三方日志服务(如ELK Stack)等。要在Flask中实现HTTP请求的日志记录,通常的做法是使用Flask的。

weixin_73725158的博客 1445

SQL示例:数据分组与去重-实现分组后取单条记录的技巧

SQL数据分组与去重:实现分组后取单条记录的技巧(附带操作示例)

weixin_41563082的博客 1006

ORACLE技巧之记录DDL语句[20191011]

在上一篇文章中,我为了解决ORA-1466问题运用如下一个技巧: 记录DDL语句 # 创建数据存储表 create table audit_ddl ( opertime timestamp PRIMARY KEY, ip varchar2(20), hostname varchar2(30), operation varchar2(30), object_t...

Eric.zhong 915

labview 上位机软件开发——实用技巧1000例

labview 上位机软件开发——实用技巧1000例 标题商与余数函数的用法 今天跟大家分享一个实用小技巧——商与余数函数的用法 1.真实工况: 一个测试台上位软件开发项目中,一个被试元件,要求做寿命试验(比如做100万次),要求记录下试验过程数据。问题来了,100万次,数据量太大怎么办,看都看不过来。和甲方商量,说是全记录下来也没什么意义,我只要知道最初性能,隔一段时间的性能就可以了。 最后:总共试验n次(n可设定),每试验m次(m可设定),记录x个值(x可设定,包括最初的x个值)。例如,试验100万次,

Labview十年工控_702老师的博客 1万+

Python-字典和集合编程技巧

借助一些基础的代码案例,给大家分享讲解Python中的字典和集合在实际编程中的一些使用技巧

记录学习路上的一些拙见 2067

mysql使用GROUP BY分组实现取前N条记录的方法或最近几条消费记录

mysql使用GROUP BY分组实现取前N条记录的方法 更新时间:2016年06月24日 11:25:48 作者:yiluoAK_47 我要评论 关注脚本之家微信公众号(jb51net) 每周都有大礼相送哦 这篇文章主要介绍了mysql使用GROUP BY分组实现取前N条记录的方法,结合实例形式较为详细的分析了mysql中GROUP BY分组的相关使用技巧,需要的朋友可以参考下...

DN_XIAOXIAO的博客 2514

Ruby编程技巧与算法实现

本文介绍了多个Ruby编程技巧与算法实现,包括日志记录器的编写与嵌套缩进处理、快速排序与字典排序方法、数组打乱算法、以及整数到英文单词的转换方法。每种实现均提供了完整代码示例,并详细说明了其原理与应用。

qq_27496129的博客 931

QTableView实现同时删除被选中的多行记录

一个很简单的功能,就是在QTableView中,有一些不连续的选区,实现将被选中的行删除。

LynFun的专栏 1万+

记录python做工程的路程

从这篇开始,主要记录自己在工作中学习到的工程应该需要的技巧,之前浪费了蛮多的时间,学术与工程的差距还是有很多的,学术主要是实现,工程要考虑的东西很多,友好化是必须要求的,写日志方便调代码和并行化处理是接下来我要记录的 转载于:https://www.cnblogs.com/tfsong/p/11172763.html...

weixin_30675967的博客 98

MATLAB AppDesigner 中TextArea实现动态日志记录与多行显示技巧

本文详细介绍了在MATLAB AppDesigner中使用TextArea组件实现动态日志记录与多行显示的技巧。通过分析TextArea的基础用法与常见痛点,提供了基于元胞数组和字符串数组的解决方案,包括日志追加、性能优化和高级格式化方法。特别适合需要实时显示程序状态或操作日志的开发者,可显著提升MATLAB图形界面的交互体验。

weixin_42527464的博客 399

好用又简单的引流技巧:你只需要一篇软文

企业想要将软文作为自己的营销工具,那首先就必须要深刻的认识它。认识它指的不是它的概念,而是它的营销逻辑以及创作技巧。 对于软文老鸟而言,他们会根据软文不同目的,熟练的使用相应的软文写作技巧,有效的让自己创作的软文发挥价值。但对于新手小白而言,往往都是在写作之前会有满腔的创作热情和写作思路,但真当下笔的时候,就会发现脑中一片空白,无从下手。软文写作并非只靠运气和熟练度,它是有技巧可以学习的! 软文写作技巧之一:效仿 要了解大家阅读文章很多经典作品,并不是为了更好地阅读文章而阅读文章,只是为了更好地创作。效仿

q245419642的博客 613
上一篇: 记录1
下一篇: 学习资源记录
xiongmaozhijin
博客等级 码龄15年 4粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值