Archive for 六月 2012

Android开发中 图片背景模糊的解决

最近在做智能电话的开发,屏幕分辨率800X480,图片也是按这个分辨率裁的,在手机上测试完全正常,可一放到电话上就出现图片模糊,色块的问题。最后找到解决方法,先确定机器适配的是hdpi,mdpi还是ldpi,再决定图片存放的目录。电话机屏幕比较大,大约7寸,而分辨率小,适应的是mdpi,但是我把所有图片都放到hdpi里了,虽然可以读取,但已经不是原先的图片了,android作了处理,导致图片失真。

Android程序在平板上不全屏的解决方法

即使把width和height设成了fill_parent,程序还是不能全屏。解决方法:
在AndroidManifest.xml中加上


    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="8" />

值根据自己情况填写,3以上就行

JS IE不支持new Date函数的解决方法

解决方法是我们自己写个new Date函数:


function NewDate(str) { 
	if(str==null)
		return false;
	str = str.split('-'); 
	var date = new Date(); 
	date.setUTCFullYear(str[0], str[1] - 1, str[2]); 
	date.setUTCHours(0, 0, 0, 0); 
	return date; 
} 

Android开发 使ListView的HeaderView和FooterView不可选择点击

在ListView里,HeaderView和FooterView也占一行,与其他的item一样,可以点击,有索引,HeaderView的索引为0.如果要使这两项不可点击,可以使用下面的方法:


public void addFooterView(View v, Object data, boolean isSelectable) 
public void addHeaderView(View v, Object data, boolean isSelectable) 

如果在view里已经填充数据,第二个参数可以为空,第三个参数设为false,即不可选择

Android Launcher开发

Launcher就是一个普通的应用,不需要在系统级实现。与普通的应用区别在于AndroidManifest.xml中声明:


    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" 
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        >
        <activity
            android:name=".MyLauncherActivity"
            android:clearTaskOnLaunch="true"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:screenOrientation="nosensor"
            android:stateNotNeeded="true"
            android:windowSoftInputMode="stateUnspecified|adjustPan" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.MONKEY" />
            </intent-filter>
        </activity>
    </application>

上面的声明同时把状态栏隐藏了。在按Home键时,会弹出选择是启动系统自带的Launcher还是我们的Launcher,可以把我们的Launcher设为默认,重启机器后,启动的就是我们的Launcher,按返回键,Home键,显示的也是我们的Launcher.

LifeRay开发 创建portlet plugin时报错的解决

使用portlets目录下的create.bat批处理创建,第一次提示,ecj未安装,其实是因为没配置jdk环境变量,配置一下。
第一次提示:
D:\Liferay\plugins\portlets\build.xml:172: D:\Liferay\plugins\portlets\Liferaybu
ndlesliferay-portal-6.1.0-ce-ga1 omcat-7.0.23\webapps\ROOT\WEB-INF\tld do
es not exist.
有些莫名其妙,中间确实是空的,这是因为配置app.server.dir时直接从文件管理器地址栏复制了,目录分割符是\,应该改成/.
app.server.dir在plugins目录下的build.系统登录用户名.properties里配置。

struts2 iterator标签输出对象列表


		<!-- 
			在Action中把List<Person>类型变量allPerson存在request中,id属性定义一个正在被迭代的对象名,用于标签内部引用
		 -->
		<s:iterator value="#request.allPerson" id="person">
			<tr>
				<!-- value直接取Person的属性名,通过%{#person} 可取出当前正在迭代的对象-->
				<td> <s:a href="showPerson.action?id=%{#person.id}"><s:property value="username" /></s:a>
				</td>
				<td><s:property value="password" />
				</td>
				<td><s:property value="age" />
				</td>
				<td><s:property value="registerDate" />
				</td>
				<td><s:property value="username" />
				</td>
				<td><s:property value="username" />
				</td>
			</tr>
		</s:iterator>

struts2与hibernate整合实例

程序功能为注册用户,显示用户信息。分四层:jsp,action,service,DAO
1、在lib目录加入struts2与hibernate的包。我是用
2、在web.xml增加struts2的过滤器
3、注册表单,register.jsp: Continue reading “struts2与hibernate整合实例” »