当前位置:  编程技术>移动开发
本页文章导读:
    ▪全屏展示        全屏显示 //--全屏-->> this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去除标题栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//去除任务栏 .........
    ▪ Bit地图Factory.decodeStream使用有关问题        BitmapFactory.decodeStream使用问题 HttpURLConnection connection  = (HttpURLConnection) url.openConnection(); InputStream is = connection.getInputStream();使用HttpURLConnection产生的流只能使用一次 如果你想连续调用这个流 .........
    ▪ 为啥要引入ContentProvider       为什么要引入ContentProvider 为什么要引入ContentProvider?     Android提供了文件存储数据,文件的存储格式不受限制,但是这样不方便数据的管理。为了方便管理,我们一般采用xml文件存储数据.........

[1]全屏展示
    来源: 互联网  发布时间: 2014-02-18
全屏显示
//--全屏-->>
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去除标题栏
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//去除任务栏 
        //<<--全屏--

    
[2] Bit地图Factory.decodeStream使用有关问题
    来源: 互联网  发布时间: 2014-02-18
BitmapFactory.decodeStream使用问题

HttpURLConnection connection  = (HttpURLConnection) url.openConnection();

InputStream is = connection.getInputStream();使用HttpURLConnection产生的流只能使用一次
如果你想连续调用这个流 必须重新初始化 

例如
Options options = new BitmapFactory.Options();
  options.inJustDecodeBounds = true;

  BitmapFactory.decodeStream(is, null, options);

  Boolean scaleByHeight = Math.abs(options.outHeight - TARGET_HEIGHT) >= Math.abs(options.outWidth - TARGET_WIDTH);

  if(options.outHeight * options.outWidth * 2 >= 200*200*2){
        double sampleSize = scaleByHeight
              ? options.outHeight / TARGET_HEIGHT
              : options.outWidth / TARGET_WIDTH;
        options.inSampleSize = 
              (int)Math.pow(2d, Math.floor(
              Math.log(sampleSize)/Math.log(2d)));
     }

        // Do the actual decoding
        options.inJustDecodeBounds = false;

        is.close();
        is = getHTTPConnectionInputStream(sUrl);
        Bitmap img = BitmapFactory.decodeStream(is, null, options);
        is.close();
1 楼 xinyao 2012-03-07  
is
很靠谱啊,呵呵

    
[3] 为啥要引入ContentProvider
    来源: 互联网  发布时间: 2014-02-18
为什么要引入ContentProvider
为什么要引入ContentProvider?
    Android提供了文件存储数据,文件的存储格式不受限制,但是这样不方便数据的管理。为了方便管理,我们一般采用xml文件存储数据。对于这样的数据操作,我们必须对其进行xml文件解析。 
    所以Android的Sharepreferences(共享参数的方式)由此诞生。它是xml文件的方式存储数据,存储在包下shared_prefs目录中,它提供了API方便我们对xml文件操作。
  但是文件和共享参数的方式虽然可以方便的存储数据,这样的文件要被其他应用访问,又要修该源代码,这样对我们造成了不便。
  所以ContentProvider由此应运而生。ContentProvider只需向外提供域名,其他应用通过相应的API即可对其操作。

文件方式如下:

public class SharePreferencesActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final SharedPreferences sharedPreferences = getSharedPreferences("jefry", Context.MODE_APPEND);
        
        Button save = (Button)findViewById(R.id.save);
        save.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				Log.i("SharePreferencesActivity", Thread.currentThread().getName());
				Editor editor = sharedPreferences.edit();
				EditText nameEd = (EditText) findViewById(R.id.filename);
				EditText content = (EditText) findViewById(R.id.content);
			    editor.putString("name",nameEd.getText().toString().trim());
			    editor.putInt("age", new Integer(content.getText().toString().trim()));
			    editor.commit();//提交修改
		       
			}
		  });
    }
}


Sharepreferences如下
public class SharePreferencesActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final SharedPreferences sharedPreferences =         getSharedPreferences("jefry", Context.MODE_APPEND);
        
        Button save = (Button)findViewById(R.id.save);
        save.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				Log.i        ("SharePreferencesActivity", Thread.currentThread       ().getName());
				Editor editor =        sharedPreferences.edit();
				EditText nameEd = (EditText) findViewById(R.id.filename);
				EditText content = (EditText) findViewById(R.id.content);
			    editor.putString("name",nameEd.getText().toString().trim());
			    editor.putInt("age", new Integer(content.getText().toString().trim()));
			    editor.commit();//提交修改
		       
			}
		  });
    }
}


ContentProvider方式如下:


public class PersonContentProvider extends ContentProvider {

	private static final UriMatcher sMatcher = new UriMatcher(
			UriMatcher.NO_MATCH);

	static {
		sMatcher.addURI("com.contentprovider.personprovider", "person", 1);
		sMatcher.addURI("com.contentprovider.personprovider", "person/#", 2);
	}

	public static final Uri CONTENT_URI = Uri
			.parse("conten://com.contentprovider.personprovider/person");

	@Override
	public int delete(Uri uri, String arg1, String[] arg2) {

		return 0;
	}

	@Override
	public String getType(Uri uri) {
		switch (sMatcher.match(uri)) {
		case 1:
			return "vnd.android.cursor.dir/person"; // List of items.
		case 2:
			return "vnd.android.cursor.item/person"; // Specific item.
		default:
			return null;
		}
	}

	@Override
	public Uri insert(Uri uri, ContentValues values) {
		try {
			Log.i("PersonContentProvider", "type" + getType(uri));
			Log.i("PersonContentProvider", "insert test...");

		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public boolean onCreate() {
		return true;
	}

	@Override
	public Cursor query(Uri uri, String[] arg1, String arg2, String[] arg3,
			String arg4) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int update(Uri uri, ContentValues arg1, String arg2, String[] arg3) {
		// TODO Auto-generated method stub
		return 0;
	}

}

//其他应用访问ContentProvider
public class OutSideActivty extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ContentValues values = new ContentValues();
        values.put("name", "emily");
		 this.getContentResolver().insert(Uri.parse("content://com.contentprovider.personprovider/person"), values);
        setContentView(R.layout.main);
    }
}

    
最新技术文章:
▪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