标签: android-ui

setShadowLayer会导致GridView中的绘制时间变慢?

我目前正在使用包含ImageViews的GridView,并希望我的图像背后有阴影.例如,在网格中可能有15个图像随时可见.在假设我希望我的屏幕以50fps渲染以显得平滑的情况下工作,我的数学表明我希望每个ImageView的总绘制时间不会差于大约1.3ms.

我看了一下Romain Guy如何在他的Shelves应用程序中做阴影:http: //code.google.com/p/shelves/source/browse/trunk/Shelves/src/org/curiouscreature/android/shelves/util/ ImageUtilities.java

这似乎有道理,所以我创建了以下类:

 public class ShadowImageView extends ImageView {
     private static final int SHADOW_RADIUS = 8;
     private static final int SHADOW_COLOR = 0x99000000;
     private static final Paint SHADOW_PAINT = new Paint();

     static {
         SHADOW_PAINT.setShadowLayer(SHADOW_RADIUS / 2.0f, 0.0f, 
             0.0f, SHADOW_COLOR);
         SHADOW_PAINT.setColor(0xFF000000);
         SHADOW_PAINT.setStyle(Paint.Style.FILL);
     }

     public ShadowImageView(Context context, AttributeSet attrs) {
         super(context, attrs);
     }

     @Override
     public void onDraw(Canvas canvas) {
         final int containerWidth = getMeasuredWidth();
         final int containerHeight = getMeasuredHeight();

         canvas.drawRect(
                 SHADOW_RADIUS / 2.0f,
                 SHADOW_RADIUS / 2.0f,
                 containerWidth …
Run Code Online (Sandbox Code Playgroud)

android android-ui android-listview android-imageview android-gridview

6
推荐指数
0
解决办法
1818
查看次数

更改动态查看活动中的内容

我从类扩展的抽象类Activity包含三个Views,如以下XML片段中所述:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:background="@drawable/bg">

    <LinearLayout 
        android:id="@+id/top_border">
        ...
    </LinearLayout>

    <View 
        android:id="@+id/activity_content"
        ...
        />

    <LinearLayout 
        android:id="@+id/bottom_border">
        ...          
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

onCreate()方法中,我将此XML布局设置为内容视图.

我希望Activity扩展这个的s覆盖onCreate()并定义activity_content View剩余边界不可变.

例如这样:

abstract public class MyActivity extends Activity {
   protected View mContent;

   @Override
   protected onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.common_layout);
      initializeContent();
   }

   abstract void initializeContent();  
}

class OneActivity extends MyActivity {

   @Override
   protected void initializeContent() {
      mContent = View.inflate(this, R.layout.some_view, null); // i.e. concrete View …
Run Code Online (Sandbox Code Playgroud)

android android-ui android-view

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

Android浏览器和WebView中的模糊图像

对于我的Android应用程序,我需要在一个显示某些图像WebView.该应用程序在Android 2.1(API 7)及更高版本上运行.图像包含表格软文本,我面临的问题是,在Android版本2.1,2.2,2.3等中,它们总是模糊的,而在较新的版本中,例如4.0.3,它们很清晰.我测试了高/低分辨率图像,但结果是一样的.

为什么会这样?

android android-ui android-image

6
推荐指数
0
解决办法
966
查看次数

Android ListView - 在更新时滚动回到顶部

我有一个listview,可以根据请求添加其他视图,由BaseAdapter维护.更新后如何保持滚动位置?

我知道这已被问了几次,但每次都提出了相同的解决方案,我已经尝试过,这是adapter.notifyDataSetChanged();在更新包含列表内容的ArrayList之后调用的.

如何确保保持滚动位置?

android android-ui android-listview android-adapter

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

如何在片段转换时使第一个片段重叠第二个片段

我正致力于片段转换.当我用第二个片段替换第一个片段时,它出现在第一个片段下面.我希望它移动到第一个片段之上.我怎样才能做到这一点?

fragmentTransaction.setCustomAnimations(animEnter, animExit, animPopEnter, animPopExit);
fragmentTransaction.replace(R.id.fragmentListView, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)

android android-custom-view android-ui android-fragments android-view

6
推荐指数
1
解决办法
7765
查看次数

裁剪动画图像

Android动画API有很多麻烦.

我需要在屏幕(600px*1024px)上从左下角到顶部动画图像(400px*600px).此外,在动画开始时,大部分图像应位于屏幕之外.

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/common_background">

<ImageView android:id="@+id/hand"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:scaleType="matrix"
           android:src="@drawable/howto_throw_hand" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

活动的逻辑:

public class MyActivity extends Activity
{
    ImageView hand;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        hand = (ImageView)findViewById(R.id.hand);
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {

        //initial positioning
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
                new ViewGroup.MarginLayoutParams(
                        RelativeLayout.LayoutParams.WRAP_CONTENT,
                        RelativeLayout.LayoutParams.WRAP_CONTENT
                )
        );
        layoutParams.setMargins(400, 600, 0, 0);
        hand.setLayoutParams(layoutParams);

        //making animation
        TranslateAnimation animation = new TranslateAnimation(
            Animation.RELATIVE_TO_SELF, 0, Animation.ABSOLUTE, -100,
            Animation.RELATIVE_TO_SELF, 0, Animation.ABSOLUTE, -1000
        ); …
Run Code Online (Sandbox Code Playgroud)

android android-ui android-animation android-layout

6
推荐指数
1
解决办法
1714
查看次数

当视图在 Android 屏幕上可见时如何获得回调

当视图出现/消失在屏幕上时,有没有办法获得回调?

我需要这个用于分析目的 - 例如。我需要检查人们看到一个视图的次数与他们点击它的次数。

我可以判断某个时间点是否有视图显示在屏幕上,但我想知道是否有回调。

另请注意,当视图的状态变为可见时我不感兴趣,甚至当视图被渲染时也不感兴趣(因为例如,在 ViewPager 中,第二页的视图在它们实际出现在屏幕上之前被渲染)。

我们针对某些场景做了几种解决方法,但我想要一些更通用的方法。我们需要在 ListViews、GridViews、ScrollViews 和 ViewPagers 中使用它,并且它们中的每一个都提出了不同的挑战。

android android-ui android-layout

6
推荐指数
1
解决办法
1216
查看次数

任何更快的转储UI层次结构的方法?

现在我正在使用uiautomator像这样转储UI:

adb shell uiautomator dump
Run Code Online (Sandbox Code Playgroud)

它工作正常,但执行它需要大约3秒钟.所以我想知道是否有更快的方法呢?就像创建一个转储UI的服务一样,还是需要一段时间?

android android-ui android-layout android-uiautomator

6
推荐指数
1
解决办法
6878
查看次数

android:删除ldpi/mdpi文件夹的陷阱

我想知道在我的android项目中删除ldpi/mdpi/hdpi文件夹的缺陷是什么?我可以只复制drawable文件夹中的所有图像吗?

我确实看到以下关于Android开发的UI开发链接 http://developer.android.com/guide/practices/ui_guidelines/icon_design.html http://developer.android.com/guide/practices/screens_support.html

谢谢

PS:我指的是所有正在使用的图像,背景,图标,菜单等......

android android-ui android-layout

5
推荐指数
1
解决办法
949
查看次数

什么可能导致Android应用程序在相同的设备上运行速度慢到运行速度快?

我和其他一些Android应用用户运行Galaxy Nexus.我们大多数人发现这款应用程序的速度非常快,但是有一些人报告称它在Galaxy Nexus上的速度非常慢.听到他们告诉我按钮,滚动等都很慢,我很震惊.该应用程序的主要视图ListView包含许多图像,文本视图等.事实上,如果您想深入挖掘,可以在Google Play上免费查看该应用程序.我正在尝试编制可能导致此问题的清单.

这是我到目前为止所拥有的:

  • 记忆不足
  • 磁盘空间不足
  • 未捕获的错误
  • 植根设备(?)

还有其他想法吗?

更重要的是,有没有办法检测(甚至调整!)潜在的问题?

performance android android-ui

5
推荐指数
1
解决办法
924
查看次数