繁体   English   中英

如何更改imageview的形状以舍入在Android中选择的菜单项?

[英]How to change imageview shape to round on menu item selected in android?

我是android新手,现在只停留在一点。 我想在用户click菜单项“圆”时更改imageview形状。

drawable文件夹中的我的circle_shape.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners 
        android:bottomLeftRadius="10dp"
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp"
        android:bottomRightRadius="10dp"/>
    <solid android:color="#FF44FF"/>
</shape>

我的Java文件Shape.java

package com.example.mixapp;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;

public class Shape_with_Spinner extends Activity {

    Spinner shapeSpinner;
    ImageView imgMaster;
    private Drawable drawable;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shape_with__spinner);
        try {
            imgMaster = (ImageView) findViewById(R.id.imgMaster);
            Toast.makeText(this, "in try part ", Toast.LENGTH_LONG).show();

        } catch (Exception e) {
            Log.i("Magaj jay che have", ""+e.getLocalizedMessage());
            Toast.makeText(this, "in catch part : "+e.getMessage(), Toast.LENGTH_LONG).show();
        }
    }

    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {

        switch (item.getItemId()) {
        case R.id.rect:
            drawable = getDrawable(R.drawable.circle_shape);
            break;

        default:
            break;
        }
        return super.onMenuItemSelected(featureId, item);
    }
}

和我的Shape.xml文件在布局文件夹中。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.mixapp.Shape_with_Spinner" >

    <Spinner
        android:id="@+id/shapeSpinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="10dp"
        android:entries="@array/Spinner_value"/>

    <ImageView
        android:id="@+id/imgToShape"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

任何帮助将是可观的。 :)

我建议您使用PicassoGlide 这个库不仅允许您异步加载图像,而且还可以为应该加载的任何图像设置转换(这里准备使用圆形转换PicassoGlide )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM