我在android中为.gif图像支持制作了一个customView。我在那方面取得了成功,但目前该视图已与我活动的左上角对齐。我希望它与我活动的中心保持一致。请告诉我怎么做。
我的代码如下:
GifwebView view = new GifwebView(this, "file:///android_asset/p3.gif");
view.setBackgroundColor(Color.parseColor("#00000000"));
RelativeLayout rel = (RelativeLayout) findViewById(R.id.rl_pics);
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
rel.setBackgroundColor(Color.parseColor("#00000000"));
view.setLayoutParams(p);
rel.addView(view);
CustomView
public class GifwebView extends WebView {
public GifwebView(Context context, String path) {
super(context);
// TODO Auto-generated constructor stub
loadUrl(path);
}
}
答案 0 :(得分:1)
您的活动主要布局(RelativeLayout),它的高度和宽度应为 match_parent ,因此它将占据整个屏幕,并且它的重力应设置为 center ,这样它中的元素就会定位在屏幕的中心。
<强> XML:强>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_pics"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
</RelativeLayout>
<强>活动:强>
RelativeLayout rel = (RelativeLayout) findViewById(R.id.rl_pics);
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
GifwebView view = new GifwebView(this, "file:///android_asset/p3.gif");
view.setBackgroundColor(Color.parseColor("#00000000"));
view.setLayoutParams(p);
rel.addView(view);
答案 1 :(得分:0)
p.addRule(RelativeLayout.CENTER_HORIZONTAL);
view.setGravity(Gravity.CENTER_VERTICAL);
这应该有效。此外,如果您希望活动占据整个屏幕而不是需要填充内容,则应使用match_parent而不是wrap_content。
修改:如果您的自定义视图未实现setGravity(int)
方法,则可以执行以下操作:
p.addRule(RelativeLayout.CENTER_HORIZONTAL|RelativeLayout.CENTER_IN_PARENT, view.getId());