`
mmdev
  • 浏览: 13301645 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android 开发小经验2

 
阅读更多


1.textView中的ellipsize

我们都知道当在TextView中设定ellipsize时,显示的结果会是缩略显示,但是比较不好的是

Google默认只会显示倆行,如果自己想多显示的话就必须自定义TextView,为了减少开发

过程中的重复工作,我把最近做的项目中的这部分代码贴出来,如下:

package com.hustunique.Fuubo.View;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

public class WeiboContentText extends TextView{
	private String mText;

	public WeiboContentText(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	public WeiboContentText(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	@Override
	public CharSequence getText() {
		// TODO Auto-generated method stub
		return mText;
	}

	@Override
	public void setText(CharSequence text, BufferType type) {
		// TODO Auto-generated method stub
		mText = (String) text;
		if (mText.length()>22) {
			StringBuffer subTextBuffer = new StringBuffer(mText.substring(0, 19));
			subTextBuffer.append("...");
			text = subTextBuffer;
		} 
		super.setText(text, type);
	}
}
比较低级,但是感觉还是比较实用

2.设置输入法弹出后的布局问题可以试下以下系列方法:

getWindow().setSoftInputMode(WindowManager.LayoutParams.xxxx);

3.TextView实现多行本文滚动
<TextView
android:id="@+id/xxx"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical" <!--垂直滚动条 -->
android:singleLine="false" <!--实现多行 -->
android:maxLines="12" <!--最多不超过12行 -->
android:textColor="#ffffff"
/>
当然我们为了让TextView动起来,还需要用到TextView的setMovementMethod方法设置一个滚动实例,代码如下
TextView tv = (TextView)findViewById(R.id.tvCWJ);
tv.setMovementMethod(ScrollingMovementMethod.getInstance());

4.EditText中setInputType的妙用

使用该方法我们可以实现诸如隐藏/显示输入内容,隐藏键盘等等


5.Dalvik与JVM

a. dalvik是基于寄存器,而JVM基于栈,前者可以提前优化,编译时间短,指令简单短小,所需资源少等等

b. dalvik运行的是.dex,而JVM是.class

c. dalvik接合了面向对象和linux的进程/线程机理,在有限的内存中可以有多个实例,每个android应用对应一个实例

并且android中的线程和进程是和linux内核中一一对应的,内核是感知的,但是在JVM中一次只能支持一个进程,并且多线程

是虚拟机虚拟出来的,操作系统只看到单线程

d.dalvik为所有的对象维持一个常量池,而jvm是每个对象有自己的常量池


6.android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。

7.GC的一般原因:

过长时间持有占用大内存的对象引用,比如activity和context

bitmap没有recycle

cursor没有关闭

自定义adapter时,没有利用contentview

8.将自己的应用添加到系统分享或是发送到:

在自己的activity中加入以下代码

<intent-filter android:label="自己的label">  
               <action android:name="android.intent.action.SEND" />  
               <action android:name="android.intent.action.SEND_MULTIPLE" />  
               <category android:name="android.intent.category.DEFAULT" />  
               <data android:mimeType="application/*" />  
               <data android:mimeType="audio/*" />  
               <data android:mimeType="image/*" />  
               <data android:mimeType="text/*" />  
               <data android:mimeType="video/*" />  
               <data android:mimeType="multipart/*" />  
           </intent-filter> 

9.在自己程序中设置桌面壁纸

public void setWallpaper(View view) {
        //生成一个设置壁纸的请求
final Intent pickWallpaper = new Intent(Intent.ACTION_SET_WALLPAPER);
Intent chooser = Intent.createChooser(pickWallpaper,"chooser_wallpaper");
//发送设置壁纸的请求
startActivity(chooser);
}

将以上方法作为一个事件触发函数即可


10.将自己程序的背景设置为手机壁纸

在values文件夹下创建一个styles.xml文件,加入如下代码

<resources>
    <style name="Theme" parent="android:Theme.Wallpaper">
        <!-- windowNoTitle设置为true,去掉标题栏 -->
        <item name="android:windowNoTitle">true</item>
    </style>
</resources>

然后在自己的程序中使用以上风格即可,注意自己的程序中不能再设置背景,否则不会出现壁纸


分享到:
评论

相关推荐

    android开发经验分享

    android开发经验总结分享,对android 开发的工程人员有帮助

    android初学者入门开发经验

    标题《android初学者入门开发经验》和描述提到了Android开发中几个重要的概念,包括多线程、activity以及Android开发的基础知识。同时,给出了标签“android 多线程 activity handler gridview”。根据这些信息,...

    Android开发经验谈

    标题和描述均提到了"Android开发经验谈",这表明文章旨在分享关于Android开发的实践经验。作者何晓杰,作为一名资深软件工程师和移动行业研究者,深入探讨了Android开发过程中的关键点,以及如何利用Android的优势,...

    Android开发经验整理

    本文将基于“Android开发经验整理”这一主题,详细解析其中包含的关键知识点,旨在帮助新手开发者快速上手,避免常见错误,提升开发效率。 1. **环境配置**:Android开发首先需要安装Android Studio,这是Google...

    创新和机遇 Android开发经验分享

    天翼大会上的PPT:创新和机遇 Android开发经验分享

    6个android原生开发小游戏

    在Android原生开发中,创建游戏是一个挑战但充满乐趣的过程。以下6个游戏项目提供了丰富的学习资源,涵盖了从基础到进阶的Android游戏开发技术: 1. **Android 美女拼图游戏**:这是一个典型的图像处理和逻辑编程的...

    阿里巴巴Android开发手册正式版1.0.1

    《阿里巴巴 Android 开发手册》是阿里巴巴集团各大 Android 开发团队的集体智慧结晶和经验总结,将淘宝、天猫、闲鱼、钉钉等 App 长期开发迭代和优化经验系统地整理成册,以指导 Android 开发者更加高效、高质量地...

    Android开发艺术探索PDF+源码+笔记

    《Android开发艺术探索》是一本深受Android开发者喜爱的书籍,由尹吉欢撰写,全面而深入地探讨了Android应用开发的各个重要方面。这本书旨在帮助读者提升Android开发技能,掌握更多的实践技巧,以及理解Android系统...

    android开发经典案例60个

    10. **第三方库集成**:许多开源库简化了Android开发,如Dagger2进行依赖注入,RxJava处理异步流,Butter Knife进行视图绑定。案例将展示如何高效地集成和使用这些库。 通过研究这60个案例,开发者不仅可以学习到...

    自学android应用开发详细流程经验(第三版)

    为了帮助初学者更有效地掌握Android开发,以下是一份详细的学习路径和资源推荐。 首先,基础的Java语法是Android开发的基石。即使现在有其他语言可以选择,如Kotlin或Swift,Java仍然是最常用的语言。因此,建议先...

    android应用开发详细流程与经验

    安装ADT:google现在已经将android的开发环境给你打包好 包括了eclipse android SDK 和eclipse的android开发插件 ADT下载地址:http: developer android com sdk index html 或者百度搜 android SDK 安装好ADT请...

    android framework 开发揭秘

    《Android Framework 开发揭秘》这本书深入剖析了Android系统的内部运作机制,是Android开发者提升技术深度...通过学习本书,读者将能够更深入地掌握Android开发,从而在Android平台上创造出更高效、更稳定的应用程序。

    Android开发权威指南

     《Android开发权威指南》适合具备一定软件开发经验、想快速进入Android开发领域的程序员,具备一些手机开发经验的开发者和Android开发爱好者学习使用;也适合作为相关培训学校的Android培训教材。

    android 开发笔记

    这可能涉及到硬件接口的使用,如GPIO、I2C、SPI等,以及设备驱动程序的开发,这对于在嵌入式系统上进行Android开发是必不可少的。 总之,这份"Android开发笔记"是一套全面的学习资源,涵盖了从基础到进阶的Android...

    搭建Android开发环境

    搭建Android开发环境是每个想要踏入Android应用开发领域的初学者必经的第一步。这一过程涉及到多个环节,包括安装必要的软件、配置开发工具以及设置环境变量。本文将详细讲解这些步骤,帮助初学者顺利构建起Android...

    Android开发艺术探索源码和PDF

    《Android开发艺术探索》是一本深受Android开发者喜爱的书籍,旨在深入探讨Android应用程序开发的各个方面。这本书涵盖了从基础到高级的Android技术,包括UI设计、性能优化、内存管理、网络编程等多个关键领域。源码...

    Android开发入门60个小案例+源代码.rar.rar

    在Android开发领域,掌握基础知识和实践经验是至关重要的。"Android开发入门60个小案例+源代码.rar.rar" 提供了一套全面的学习资源,旨在帮助初学者快速熟悉Android应用开发的基本流程和技术要点。以下是对这些小...

    30627-Android开发工程师案例教程(第2版)-倪红军-代码

    《30627-Android开发工程师案例教程(第2版)-倪红军-代码》是一本专注于Android应用开发实践的教程,由资深Android开发者倪红军编写。此资源包含了与教程配套的源码,旨在帮助读者通过实际操作来加深对Android开发...

    Android十年终极开发经验_助您不走弯路_快速晋级Android架构师

    ** 行业标准: 作者有数年Android开发经验. ** 专业: 数年Android问题debug经验,Android解读专业到位 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答 ** 退款: 作者承诺如果对于文档不满意,可线下联系...

Global site tag (gtag.js) - Google Analytics