当前位置: 编程技术>移动开发
本页文章导读:
▪全屏展示 全屏显示
//--全屏-->>
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即可对其操作。
文件方式如下:
Sharepreferences如下
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); } }
最新技术文章: