当前位置:  编程技术>移动开发
本页文章导读:
    ▪density, dip, px, 分辨率的1点理解        density, dip, px, 分辨率的一点理解 主要的知识在:http://xy0811.spaces.live.com/Blog/cns!F8AECD2A067A6B17!1508.entry我这里只说说我自己的理解:先说清楚一点:什么是显示点阵显示点阵就是指在显示屏上.........
    ▪ 封锁GPS        关闭GPS public class MainActivity extends Activity { private LocationManager locationManager; private TextView tv; private StringBuilder builder = new StringBuilder("位置信息:\n"); private LocationListener ll; public void getLocation(){ l.........
    ▪ 解决在练习gallery时编译出错的有关问题       解决在练习gallery时编译出错的问题 在练习时遇到编译器发出 android.R.styleable 不能找到的错误. (android.R.styleable cannot be resolved),在网上找了半天,然后分析其他的例子终于解决了,其实就.........

[1]density, dip, px, 分辨率的1点理解
    来源: 互联网  发布时间: 2014-02-18
density, dip, px, 分辨率的一点理解
主要的知识在:http://xy0811.spaces.live.com/Blog/cns!F8AECD2A067A6B17!1508.entry
我这里只说说我自己的理解:
先说清楚一点:什么是显示点阵
显示点阵就是指在显示屏上长和宽各能显示出多少个像素点,或者在LED显示屏上长和宽有多少个LED会同时发光。
在显示屏上,真正能够显示出来的像素点是有限的,并不是说,你每英寸上的像素点越多就显示的越多。对于一个显示尺寸一定的显示屏,其能够显示的像素点是一定的,即其density是一定的。
在软件的显示单位是分辨率。分辨率相当于一个距阵,表示其中的点数。并不是分辨率越大,其显示屏就越大,这还要看其像素点的密度。如果分辨率一样,密度大的,其屏自然就会小。
由于在计算机中的字体是以像素为单位,所以当密度变大时,即分辨率变大的时候,其字体就越小,当密度变小时,即分辨率变小时,其字体就越大。
但对于density(显示点)来说,如果LED的技术不变,屏的大小不变的情况下,其值是不会变化的。
对于一个显示的界面,我们自然是希望,在屏的大小不变的情况下,不要变化,如果屏变大的情况下,也随之而变大。所以这时,可以跟据density来计算。也就是对态的改变view的px值。这样就可以做到view的显示效果不会随分辨率的变化而变化。而可以随屏的大小而变化。但如果是在屏的大小一定的情况下,去改分辨率,其view肯定也会变化。但在手机中,分辨率时,其屏也一定会变化。这样或多或少可以起到一些作用。

所以,如果美工给的480*800(这时density=240)的界面时,如果我们要用dip来做单位的话,我们应该把数值进行转化一下, dip = px * 160/240
所以,真正要做适配的,只有是当图片被拉抻后,是否变形了,如果变形了,就要做适配,如果没有变形,就不要做适配。

我们一般说手机大小为:3.5英寸,这个指的是:手机对角线的长为3.5英寸,但不能计算出其长和高,因为不知道厂商会以什么比例的长宽来做。

对于分辨率,我们会说480*800像素,但有时又会用每英寸96*96像素,如果在做效果图的时候,把每英寸的像素调小,就可以看到很大的图片,但是到手机上后,其大小会缩小,原因是手机的每英寸的大小要大。
但是如果想做两张大小一样的图片(指在手机上显示时大小要一样),这时,这两张图片的每英寸的大小要设置成一样的。不然在手机上显示时,其大小会不一样。在电脑上显示时,其大小是一样的。
1 楼 yxxcrliweifeng 2010-12-24  
理解地好深啊!

    
[2] 封锁GPS
    来源: 互联网  发布时间: 2014-02-18
关闭GPS
public class MainActivity extends Activity {
	private LocationManager locationManager;
	private TextView tv;
	private StringBuilder builder = new StringBuilder("位置信息:\n");
	private LocationListener ll;
	public void getLocation(){
		locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

		String provider = LocationManager.GPS_PROVIDER;
		Location location = locationManager
				.getLastKnownLocation(provider);
		
		updateMsg(location);
		
		ll = new LocationListener(){
		
			public void onLocationChanged(Location location) {
				updateMsg(location);
			}
	
			public void onProviderDisabled(String provider) {
			}


			public void onProviderEnabled(String provider) {
			}


			public void onStatusChanged(String provider, int status,
					Bundle extras) {
			}
         };
		
		locationManager.requestLocationUpdates(provider, 2000, 10,
				ll);
	}
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tv = (TextView) findViewById(R.id.mTextView);
		Button mLocation = (Button)findViewById(R.id.mLocation);
		mLocation.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				getLocation();
			}
		});

	}

	private void updateMsg(Location l) {
		
		if (l != null) {
			double lat = l.getLatitude();
			double lng = l.getLongitude();
			builder.append("(");
			builder.append(lat);
			builder.append(",");
			builder.append(lng);
			builder.append(")");
			
			if(l.hasAccuracy()){
				builder.append("\n精度:");
				builder.append(l.getAccuracy());
			}
			
			if(l.hasAltitude()){
				builder.append("\n高度:");
				builder.append(l.getAltitude());
			}
			
			if(l.hasBearing()){
				builder.append("\n方向:");
				builder.append(l.getBearing());
			}
			
			if(l.hasSpeed()){
				builder.append("\n速度:");
				builder.append(l.getSpeed());
			}
			
			builder.append("\n");

		} else {
			builder.append("没有位置信息");
		}
		tv.setText(builder);
	}
    public void onResume() {
    	if(locationManager != null) {
    		locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1, ll);
    	}
        super.onResume();
    }
    public void onPause() {
    	if(locationManager != null) {
    		locationManager.removeUpdates(ll);
    	}
        super.onPause();
    }
	
}
   最近做了一个Gps定位的系统项目,不过研究几天还是没有进展。到最后项目经理告诉我解决方法,和大家分享一下。

    
[3] 解决在练习gallery时编译出错的有关问题
    来源: 互联网  发布时间: 2014-02-18
解决在练习gallery时编译出错的问题
在练习时遇到编译器发出 android.R.styleable 不能找到的错误. (android.R.styleable cannot be resolved),在网上找了半天,然后分析其他的例子终于解决了,其实就是添加attars.xml到 res/values文件夹下,下面是这个文件的内容

<resources>  
    <declare-styleable name="Gallery">
        <attr name="android:galleryItemBackground">
        </attr>
    </declare-styleable>
</resources>
,附上我测试的项目,希望对遇到同样问题的人有帮助。

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3