相关疑难解决方法(0)

在运行时确定Android视图的大小

在创建活动后,我正在尝试将动画应用到我的Android应用中的视图.为此,我需要确定视图的当前大小,然后设置动画以从当前大小缩放到新大小.此部分必须在运行时完成,因为视图根据用户的输入缩放到不同的大小.我的布局是用XML定义的.

这似乎是一件容易的事,虽然没有一个能解决我的问题,但很多问题都存在.所以也许我错过了一些明显的东西.我通过以下方式了解了我的观点:

ImageView myView = (ImageView)getWindow().findViewById(R.id.MyViewID);
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但打电话时getWidth(),getHeight(),getMeasuredWidth(),getLayoutParams().width,等,他们都返回0.我也试过手动调用measure()视图上,然后到一个呼叫getMeasuredWidth(),但没有效果.

我已经尝试调用这些方法并在我的activity onCreate()和in中检查调试器中的对象onPostCreate().如何在运行时确定此视图的确切尺寸?

android

113
推荐指数
8
解决办法
14万
查看次数

获取窗口的大小没有标题/通知栏

我一直在玩Android开发,我希望能够做的一件事就是为我的窗口动态创建一个背景图像,类似于下面的那个.

替代文字http://i43.tinypic.com/2s1acrb.png

这是来自我的BlackBerry应用程序.它由三个独立的部分组成,右下角的徽标,左上角的水印和右下角的名称.它独立于屏幕尺寸工作,因为BlackBerry应用程序只获取所有三个部分,并使用屏幕宽度和高度生成适当大小的位图.

由于Android具有更多屏幕分辨率的可能性,我需要能够像这样动态生成背景.但是,我还没有找到任何方法来获取Android中窗口的高度/宽度.我可以获得屏幕分辨率,但包括应用程序标题栏和通知栏,这是不可接受的.

我想知道如何获得我的窗口大小,或屏幕分辨率减去标题和通知栏.我认为这可能是使用我的布局管理器的尺寸,但我无法在onCreate方法中获得它们的高度/宽度,所以我不确定该做什么.

谢谢.

user-interface android

19
推荐指数
1
解决办法
3万
查看次数

getmeasuredheight()和getmeasuredwidth()在View.measure()之后返回0

测量后View具有恒定的尺寸view.measure()中,getMeasuredHeight()并且getMeasureWidth()将返回0.

layout_view.xml,为了创建视图而膨胀的布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="100dp"
    android:layout_height="100dp">
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

测量尺寸的功能

public void measureView(Context context){
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.layout_view,null,false);

    view.measure( View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);

    Log.d(TAG,"Error width : " + view.getMeasuredWidth());
    Log.d(TAG,"Error heeght : " + view.getMeasuredHeight());

}
Run Code Online (Sandbox Code Playgroud)

layout android view

15
推荐指数
3
解决办法
2万
查看次数

Android:我如何知道textView(我的页面)中可以容纳多少文本?

我想创建一个文本阅读器,它将剪切文本并将其放在TextView(代表我的页面)和一个接一个.它们包含在ViewFlipper(代表我的整个文本)中,它允许我翻页.

通过利弊我不能聪明地削减我的文字.现在我将每个TextView限制为多个字符,但它非常不稳定.事实上,有些字母占用的空间比其他字母多.我们不能使用这种方法.

我们如何才能知道TextView中输入的文本数量是多少?

我试图手动找到我的View的最大大小.我援引:

float test = view.getPaint().measureText(myString);
Run Code Online (Sandbox Code Playgroud)

它运作良好.当我输入480个字母(0和1)时,我得到14,400,我的文字完全在屏幕内.附:

1  -> 12.0
0  -> 12.0
é  -> 11.0
\n -> 13.0
\r ->  7.0
Run Code Online (Sandbox Code Playgroud)

总计填写页面 - > 14400

问题是换行和回车导致问题.

如果我的字符串中只有字母或数字,那么好:如果我们尊重最大尺寸14,400,屏幕上会显示所有内容.没问题!

通过利弊,如果换行或回车,它不起作用.即使我们尊重14400的限制,上面的文字并没有完全显示.

这是因为"MeasureText"方法;"仅为换行符返回13.但奇怪的是,换行符应该至少包含480以使其保持一致.

出版商如何将电子书(Moon Reader,+ Aldiko)的文字格式化得如此之好?每个页面都有相同的高度,文本结尾在同一个地方..

android text textview

9
推荐指数
1
解决办法
2770
查看次数

Android / Google Maps API - 计算完整地图的宽度和高度(以像素为单位)

所以我目前正在制作一个基于 GoogleMaps 的游戏。因为我想制作一个相机,所以我需要整个谷歌地图的像素大小。

这就是我的意思:

我实际上指的是尺寸

我已经尝试过了:

    // pre generated by android studios
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

    mapFragment.getMapAsync(this);


    int width = mapFragment.getView().getMeasuredWidth();

    int height = mapFragment.getView().getMeasuredHeight();


    String widthAndHeight = width+" "+height;
Run Code Online (Sandbox Code Playgroud)

但它只返回 null。片段有什么问题吗?还有其他方法可以计算谷歌地图的完整尺寸吗?或者这只是返回当前显示的地图部分的大小?

java android google-maps google-maps-api-3

0
推荐指数
1
解决办法
4129
查看次数