小编use*_*443的帖子

Android RemoteViews,如何在窗口小部件中设置ImageView的ScaleType?

我正在开发一个带有图像的小部件,可以在一个设置屏幕中由用户选择.然后可以使用ImageView.setScaleType("CENTER")从用户设置图像.这样可行.然后,图像的URL作为URL存储在首选项中,也作为Bitmap的Base64编码字符串存储(因为我想缩小图像,用户可以在设置中旋转它)

在小部件中,我加载图像.这很好.使用URI和Bitmap也是如此.ImageView的ScaleType也设置为布局中的固定值,也适用.

但是如何以编程方式在窗口小部件中定义ImageView的ScaleType?原因我想将ScaleType设置为值,用户已在设置中选择.使用RemoteViews,我们无法获得ImageView ...

我试过了:


myRemoteViews.setString(R.id.myImage,"setScaleType","CENTER");


日志文件说:ImageView无法使用函数setScaleType.

有人知道如何在AppWidget中进行此定义吗?

android widget imageview

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

ProGuard没有使用Windows中使用的Joda Time进行编译

实际上这是一个答案而不是一个问题:我在Windows上花了很多时间使用JodaTime使用ProGuard将其包含在我的Android项目中

Proguard配置:

-libraryjars C:\Users\Reto\Documents\GitHub\advanceIT\LoveClockPAY\libs\joda-time-2.1.jar
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

  1. ProGuard没有找到我的JAR并说:

    Can't read [C:\Users\Reto\Documents\GitHub\advanceIT\LoveClockPAY\libs\joda-time-2.1.jar] (No such file or directory)

    -libraryjars libs/joda-time-2.1.jar

  2. ProGuard不想编译并抛出许多错误,如下所示:

    Warning: org.joda.time.base.AbstractDuration can't find referenced class org.joda.convert.ToString

    # Exclude those 2 dependency classes, cause otherwise it wont compile

    -dontwarn org.joda.convert.FromString

    -dontwarn org.joda.convert.ToString

android proguard jodatime class-reference

8
推荐指数
1
解决办法
1515
查看次数

Galaxy S和Galaxy S2的最小宽度

我正在开发一个Android Widget,需要区分Galaxy SGalaxy S2.我几乎阅读了有关屏幕尺寸和密度文章的所有内容.当然,我需要使用新的限定符和新的限定符Smallest Width.我的问题是,sw320dp限定符匹配Galaxy S和Galaxy S2.但是我需要Galaxy S2的另一种布局,但是找不到合适的限定符.

银河S的定义,密度233

屏幕尺寸(以像素为单位):480像素x 800像素

屏幕尺寸以dp为单位:329dp x 549dp(原因1dp = 1pixel /(密度/ 160)

- >所以限定符sw320dp必须在这里匹配.是的,确实如此

Galaxy S II的定义,密度218

屏幕尺寸(以像素为单位):480像素x 800像素

屏幕尺寸dp:352dp x 587dp(原因1dp = 1pixel /(密度/ 160)

- >所以限定符sw340dp必须在这里匹配,但不是没有

(在模拟器和真实设备上测试过)

drawables不是问题,但我的布局,特别是高度和文本大小在这些设备上是不同的,所以我真的需要一个特定的布局.

任何人都有想法或更多的经验吗?

android android-widget screen-size galaxy

7
推荐指数
1
解决办法
6385
查看次数

在Widget(RemoteViews)中更改GridView中的numColumns无效

我有一个带有GridView的小部件(可以工作),它以1个或多个列/行显示信息.我想以编程方式设置列数,导致用户选择.如果我将Layout-XML中的numColumns设置为"1",它可以正常工作.如果我尝试以下列方式设置numColumns,它没有任何效果:

    rViews.setInt(R.id.duration_view, "setNumColumns", 1);
Run Code Online (Sandbox Code Playgroud)

布局看起来像这样:

    <GridView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/duration_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:minHeight="64dp"
        android:verticalSpacing="0dp"
        android:columnWidth="192dp"
        android:numColumns="auto_fit"
    />
Run Code Online (Sandbox Code Playgroud)

我的widget onUpdate()方法,使用RemoteAdapter:

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        // ....
        Intent intent = new Intent(context, ViewFlipperWidgetService.class);
        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
        RemoteViews rViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
        rViews.setRemoteAdapter(R.id.duration_view, intent);
        rViews.setEmptyView(R.id.duration_view, R.id.empty_view);

        // This doesnt have any effect...:-(
        rViews.setInt(R.id.duration_view, "setNumColumns", 1); 

        appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.duration_view);            

        AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, rViews);

        // ....
        super.onUpdate(context, appWidgetManager, appWidgetIds);
Run Code Online (Sandbox Code Playgroud)

不仅setNumColumns没有效果,其他方法调用也是如此.我做错了什么?

collections android gridview widget remoteview

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

内部片段中的ViewPager,未显示,不可见

我使用ActionBar,它加载不同的碎片.这是在FragmentActivity类中完成的.其中一个Fragent应该有一个ViewPager包含不同的片段.我现在不再收到任何错误,但ViewPager和PagerTitleStrip以及ViewPager中的所有Fragents都没有显示出来.ActionBar中的其他片段正常工作.我正在使用Support-Package中的所有类.我在这里阅读了很多帖子,但我还是找不到它.

在我从FragmentAcivity派生的ActivityClass中,我使用了Listener:

SettingsActiviy.java

protected class SettingsTabsListener implements ActionBar.TabListener {

    private Fragment fragment;

    public SettingsTabsListener(Fragment fragment) {
        this.fragment = fragment;
        Log.e("SettingsTabListener","Contructor Fragment is " + fragment);
    }

    @Override
    public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {
    }

    @Override
    public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
        FragmentManager fragMgr = getSupportFragmentManager();
        FragmentTransaction xaction=fragMgr.beginTransaction();

        // Dont know if we really need that...
        if (fragment instanceof SettingsActivityOverviewFragment) {
            if (fragment == null) {
                fragment = SettingsActivityOverviewFragment.newInstance(appWidgetId);
            }
        }
        xaction.replace(R.id.FragmentPlaceholder, (Fragment)fragment);
        xaction.commit();
    }

    @Override
    public void onTabUnselected(Tab …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager android-actionbar

2
推荐指数
1
解决办法
2531
查看次数