Gzip格式文件(gzip
例如,使用程序创建)使用"deflate"压缩算法,该算法与zlib使用的压缩算法相同.但是,当使用zlib来膨胀gzip压缩文件时,库会返回一个Z_DATA_ERROR
.
如何使用zlib解压缩gzip文件?
我有一个非常简单的问题:
是否还是无法充气视图(不将它添加到布局)在后台线程(例如:在doInBackground
的AsyncTask
)?
我知道这是可能的,因为我已经在我的应用程序中以这种方式实现了大多数活动并且从未出现过问题,直到我在Galaxy S上遇到此问题: Android:android.view.InflateException:二进制XML文件行#13:错误在SAMSUNG Galaxy S中膨胀类<未知>
我被告知我不应该Views
在后台线程中膨胀,但具体原因是什么,为什么我的aproach在大多数设备中工作但在Galaxy S中没有?
我有一个垂直方向的LinearLayout作为父级,我想以编程方式多次向该父级添加一些视图.现在,每次在添加到父元素之前获取对每个UI元素的新引用时,我都会给孩子充气.这似乎不是非常有效,有没有更好的方法来做到这一点.
我正在使用的当前代码如下,如果我在循环之前只膨胀一次我得到运行时错误"他指定的孩子已经有父.你必须首先在孩子的父母上调用removeView()."
LayoutInflater inflator = LayoutInflater.from(getBaseContext());
LinearLayout parentPanel = findViewById(R.id.parent_pannel);
ArrayList<String> myList = getData();
for(String data : myList) {
// inflate child
View item = inflator.inflate(R.layout.list_item, null);
// initialize review UI
TextView dataText = (TextView) item.findViewById(R.id.data);
// set data
dataText.setText(data);
// add child
parentPanel.addView(item);
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找字符串膨胀算法的JavaScript实现.我想在服务器端压缩(Java),并在客户端(JavaScript)解压缩.
我发现:
在javascript中解压缩字符串
那个被标记为已回答并回答了不同的问题.其他答案也适用于其他内容(解压缩ZIP格式的文件).
JavaScript膨胀实现(可能只有FF 3.6)
这最接近我的需要.但是,我想有一些替代方案.
建议?
谢谢,Ondra
更新: 我有一个特定的用例,请不要回答"不要在JavaScript中这样做".我正在编写一个"离线"报告工具(一旦生成,它被放到一个静态存储中),并且放气可以为单个报告节省兆字节.我受其他应用程序的约束,因此我无法将其存储为zip文件.
所以我可以在运行时给ViewStub充气.假设我想让它消失,然后根据发生的某些事件再次膨胀(例如,根据用户在屏幕上选择的内容进行膨胀和放气的工具栏).
我可以使用View.setVisibility(View.GONE)....还有其他方法吗?
或者我在这里做错了什么?
谢谢!:)
我只是按照一个简单的地图教程http://developer.android.com/resources/tutorials/views/hello-mapview.html但收到此错误.我是android的新手我试图遵循通过互联网提供的所有解决方案,但还没有成功.请帮我.我的主要.xml在下面
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="***"
/>
Run Code Online (Sandbox Code Playgroud)
和manifestfile就是这个
我有这个代码
View item = View.inflate(context, R.layout.item_layout, null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
layout.addView(item, params);
Run Code Online (Sandbox Code Playgroud)
我的item_layout :(注意部分android:layout_marginTop ="2dip")
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_marginTop="2dip" android:layout_width="fill_parent">
<ImageView android:src="@drawable/pic_unknown" android:id="@+id/image1"
android:layout_height="50dip" android:layout_width="50dip"
android:padding="5dip"></ImageView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
然后在我的布局中,我看到了项目列表,但它们之间没有任何边距.我尝试使用margintop = 10dip仍然没有发生我的观点是我在布局中放置的值不是在计算中有或没有边距顶部布局是相同的.
如何在项目之间添加一些空白区域?如何在物品之间充气?是否有可能膨胀像空隙或某些空间?或者我必须使用解决方法,比如用2dip高度或某些东西来膨胀一些空布局谢谢
我收到以下错误,我不明白...
06-15 22:06:49.196: W/dalvikvm(17622): threadid=1: thread exiting with uncaught exception (group=0x40bcc1f8)
06-15 22:07:05.031: W/dalvikvm(17877): threadid=1: thread exiting with uncaught exception (group=0x40bcc1f8)
06-15 22:07:05.031: E/AndroidRuntime(17877): FATAL EXCEPTION: main
06-15 22:07:05.031: E/AndroidRuntime(17877): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.whipple.android/com.whipple.android.StockActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class ViewPager
06-15 22:07:05.031: E/AndroidRuntime(17877): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968)
06-15 22:07:05.031: E/AndroidRuntime(17877): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
06-15 22:07:05.031: E/AndroidRuntime(17877): at android.app.ActivityThread.access$600(ActivityThread.java:127)
06-15 22:07:05.031: E/AndroidRuntime(17877): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
06-15 22:07:05.031: E/AndroidRuntime(17877): at android.os.Handler.dispatchMessage(Handler.java:99)
06-15 22:07:05.031: E/AndroidRuntime(17877): at android.os.Looper.loop(Looper.java:137)
06-15 22:07:05.031: E/AndroidRuntime(17877): at …
Run Code Online (Sandbox Code Playgroud) java android inflate classnotfoundexception android-viewpager
我有一个LinearLayout
已经包含几个元素的视图.我想以编程方式添加更多视图.因为这是在一个内部ScrollView
,一切都将滚动.
所以我要做的就是浏览我的列表,并将自定义View的新实例添加到其中.该自定义视图会扩展XML布局并添加一些方法.
这种方法效果很好.问题是它的速度非常慢,即使没有任何疯狂的代码......一个包含10个项目的列表需要大约500ms才能实例化.从用户体验的角度来看,这很难被接受.
我的问题是,这是正确/最好的方法吗?虽然"R.layout.my_list_item"非常简单,但Android似乎需要花费大量时间来夸大布局.我想知道是否有办法可以为其他视图重用"膨胀"布局,有点缓存更复杂的解析?
我已经尝试用ListView
(和适配器和包装器)这样做,它似乎更快.问题是我不能用简单的ListView
; 我的布局比一个简单的列表更复杂(它LinearLayout
本身包含额外的自定义图标,并且在它被包装之前它有另一个具有更多视图的父级ScrollView
).
但是有没有办法为LinearLayout使用适配器?这会比尝试自己添加视图更快吗?
任何帮助表示赞赏.我想更快地做到这一点.
代码如下.
主要活动:
// The LinearLayout that will contain everything
lineList = (LinearLayout) findViewById(R.id.lineList);
// Add a lot of items for testing
for (int i = 0; i < 10; i++) {
addListItem("Item number " + i);
}
protected void addListItem(String __title) {
MyListItem li;
li = new MyListItem(this);
li.setTitle(__title);
lineList.addView(li);
}
Run Code Online (Sandbox Code Playgroud)
MyListItem:
public class MyListItem extends RelativeLayout {
protected TextView …
Run Code Online (Sandbox Code Playgroud) 我试图膨胀一个内部类视图并获得"错误膨胀类"问题.我引用了这篇文章很有帮助,但我仍然迷失了为什么我不能让这个工作.
这是代码摘录,我的XML和logcat.
编辑:另外我注意到当我明确拥有它时,logcat为"CupcakeMessageView(Context,AttributeSet)"声明了"没有这样的方法异常".
谢谢大家!
public class CupcakeMessage extends Activity {
class CupcakeMessageView extends View {
private static final int TEXT_SIZE = 12;
private static final int X_OFFSET = 15;
private Paint mPaint;
public CupcakeMessageView(Context context) {
super(context);
}
public CupcakeMessageView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
...
}
more class stuff...
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cupcake_message);
...
}
}
Run Code Online (Sandbox Code Playgroud)
这是XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" …
Run Code Online (Sandbox Code Playgroud)